API Design & Communication
API design defines how distributed services, client devices, and third-party developers communicate reliably across network boundaries.
All Topics in Phase 9
0 of 13 completedDesign clean, predictable REST APIs: Nouns vs verbs, HTTP methods, status code semantics, statelessness, idempotent mutations, and sub-resource nesting.
Evaluate REST compliance: Level 0 (The Swamp of POX), Level 1 (Resources), Level 2 (HTTP Verbs), and Level 3 (HATEOAS hypermedia controls).
Scale large dataset navigation: Offset/Limit SQL scan penalties, Page Drift anomalies, and high-performance Keyset Cursor pagination.
Master the 4 core rate limiting algorithms: Token Bucket, Leaky Bucket, Fixed Window Counter, and Sliding Window Log/Counter in Redis.
Evolve APIs without breaking clients: URI Path versioning, Query parameter versioning, Header versioning, and Stripe-style date versioning.
Solve over-fetching and under-fetching: Schema Definition Language (SDL), Queries, Mutations, Subscriptions, and client-specified data fetching.
Solve explosive database query multipliers: Resolver execution mechanics, batching, caching, and Facebook's DataLoader pattern.
Architectural protocol selection: Protocol Buffers binary serialization, HTTP/2 multiplexing, streaming, REST caching, and GraphQL flexibility.
Design long-running HTTP interfaces: 202 Accepted, polling status endpoints (/jobs/123), webhook callbacks, and streaming progress.
Design bulletproof payment and mutation APIs: Client-generated keys, atomic DB locks, status caching, and RFC 9457 error contracts.
Centralize perimeter concerns: TLS termination, authentication, rate limiting, request routing, header sanitization, and Envoy/Kong.
Tailor APIs to specific client form-factors: Mobile BFF vs Web BFF vs Smart TV BFF, and team autonomy.