Skip to main content

Reference and Selective Reading

You do not need to read the source books front-to-back for this module. Use the concept pages and practice pages first. Open these local chunks only when you need alternate exposition, more worked examples, or a deeper exercise lane.

Source Roles

SourceRoleWhy it is here
API Design Patterns (Geewax)Primary teaching sourceDefault escalation for resource modeling, standard methods, custom methods, LRO, batch, pagination, filtering, versioning, and deprecation
Fundamentals of Software Architecture (Richards, Ford)Selective supportAPIs as architectural surfaces, event-driven style, monolithic-vs-distributed tradeoffs
Learning Domain-Driven Design (Khononov)Selective supportBounded contexts and integration patterns (Open Host Service, Published Language, Anticorruption Layer), event-driven architecture
Clean Architecture (Martin)PeripheralBoundary discipline between layers and services
Just Enough Software Architecture (Fairbanks)PeripheralModeling vocabulary and architecture description

Read Only If Stuck

Cluster 1: API as a Product

Cluster 2: HTTP / REST Resource Design

Cluster 3: Beyond CRUD -- Actions, Events, Async Patterns

Cluster 4: RPC, GraphQL, and Event-Driven APIs

Cluster 5: Versioning, Deprecation, Compatibility

Optional Deep Dive

Concept-to-Source Map

Primary conceptBest source if stuckWhy this source
What an API contract is and who it is forGeewax: What are web APIs?Opens the contract framing
The developer experience lensGeewax: Expressive and simpleDX criteria made concrete
API governanceGeewax: Why are API design patterns important?Consistency rationale
Resources and URL designGeewax: What is resource layout?Starting model
HTTP verbs, status codes, idempotencyGeewax: Which methods, idempotence, GETVerb discipline
Pagination, filtering, sortingGeewax: Page tokensCursor-first default
Custom actions on resourcesGeewax: Custom methods motivationWhy CRUD does not fit
Long-running operations, webhooks, asyncGeewax: LRO overviewCore async contract
Batch and bulk patternsGeewax: Batch atomicityHardest batch decision
RPC styles (gRPC, JSON-RPC)Fundamentals: Monolithic vs distributedWhere RPC fits in topology
GraphQLFundamentals: Event-driven architecture styleContrast with schema-first
AsyncAPI and event-driven contractsLearning DDD: Types of eventsNotification vs state-carried
Backward and forward compatibilityGeewax: Backward compatibility part 1Concrete rules begin here
Versioning strategiesGeewax: Semantic versioning and tradeoffsMiddle ground versioning
Deprecation and sunset disciplineGeewax: Soft delete across versions and tradeoffsLive-API deprecation pragmatics

External Community References