Data and consistency
Start here for database indexes, transactions, locking, sharding, and eventual consistency.
Knowledge map
Explore by domain and module when you need context, then enter a guided path when you are ready to study in sequence.
6 modules
Design reliable backend systems through data, traffic, async work, and failure trade-offs.
Start here for database indexes, transactions, locking, sharding, and eventual consistency.
Diagnose query explosions, tune connection pools, plan migrations, and keep database-backed APIs stable.
Learn how production systems handle dependency failures, retries, duplicate work, and overload.
Understand queues, background jobs, webhooks, and the operational details behind async workflows.
Study how requests reach backend services and how public API contracts stay stable over time.
Complete the course with focused guides that extend the core sequence.
6 modules
Choose Java collections by access pattern, correctness constraints, and performance behavior.
Start with HashMap behavior, TreeMap ordering, legacy Hashtable differences, load factor tuning, and concurrent map choices.
Understand equals, hashCode, key mutability, collision handling, and why hash-based collections behave the way they do.
Compare hash-based uniqueness with sorted set behavior, range navigation, comparator rules, and membership checks.
Compare ArrayList and LinkedList through access patterns, insertion cost, memory overhead, and backend usage.
Choose between FIFO queues, double-ended queues, heap-backed priority queues, and algorithmic top-K patterns.
Use Big-O as a practical language for collection choices, hot paths, memory overhead, and code reviews.
6 modules
Build clear API contracts that remain predictable through errors, retries, and change.
Choose API style, review REST contracts, document schemas, evolve versions, and understand where an API gateway and browser preflight behavior fit.
Design status codes, stable error shapes, request IDs, and client-friendly failure behavior.
Protect APIs with authentication choices, cookies vs tokens, API keys, OAuth scopes, service credentials, gateways, and clear auth failures.
Make API retries safer with idempotency, abuse prevention, rate limits, backoff, and predictable response contracts.
Handle paginated data, pagination metadata, webhook delivery, JSON contracts, schemas, and payload inspection.
Connect API design decisions to a concrete Spring Boot controller implementation.
4 modules
Understand identity, tokens, sessions, OAuth, and browser security boundaries.
Compare identity, credentials, permissions, sessions, JWTs, OAuth, OpenID Connect, and login tradeoffs.
Understand access tokens, refresh tokens, API keys, JWT claims, expiration, rotation, and local inspection.
Connect CORS, cookies, bearer tokens, CSRF, XSS, storage choices, session fixation, and safe browser authentication design.
Design permission checks, least privilege, authentication failures, gateway checks, OAuth resource servers, API keys, and clear API responses.
5 modules
Protect APIs, credentials, sessions, integrations, and operational trust boundaries.
Separate identity, permissions, login state, delegated authorization, and protected resource checks.
Understand token claims, expiration, refresh behavior, local inspection, timestamps, and revocation tradeoffs.
Connect origins, credentials, cookie behavior, cookie hardening, preflight requests, CSRF, XSS, URL encoding, and browser-backed API calls.
Use security event logs, audit logs, secret handling, service accounts, least privilege, and safe evidence trails to operate production systems.
Design gateway checks, rate limits, 401 and 403 responses, safe error messages, and useful debugging signals.
5 modules
Build practical complexity judgment for search, arrays, heaps, and backend code reviews.
Learn the growth curves behind common algorithms and use Big-O as a practical code review language.
Study sliding windows, two pointers, and prefix sums for common array, string, and range-query problems.
Understand binary search, sorted input requirements, logarithmic growth, and lookup tradeoffs.
Use heap-backed priority queues when ranking, scheduling, or keeping only the best K items.
Connect algorithm complexity to everyday backend collection choices, maps, lists, queues, and sets.