GO LEARNING PATH · 19 LESSONS
Go architectures
Compare monoliths, layers, hexagonal and clean designs, DDD, CQRS, events and distributed services.
Packages follow responsibilities, not a diagram
Choose cohesive package boundaries and keep concrete dependencies at the edges.
3 min · Worked lesson
Ports and adapters with a real request
Trace an HTTP adapter through an application operation to a storage port and compare test boundaries.
3 min · Worked lesson
Choose a style; keep the code easy to change
Compare a modular monolith, layered design and microservices using concrete operational tradeoffs.
3 min · Worked lesson
Simple monolith: start with one executable
Keep a small application understandable without premature service boundaries.
3 min · Worked lesson
Layered architecture: transport, application, storage
Separate responsibilities without confusing logical layers with deployed tiers.
3 min · Worked lesson
Modular monolith: boundaries inside one deployment
Give business capabilities explicit APIs while retaining local transactions.
3 min · Worked lesson
Clean and Onion: dependencies point toward policy
Keep domain policy independent of framework and database details.
3 min · Worked lesson
Vertical slices: organize around a use case
Keep feature changes together without duplicating shared invariants.
3 min · Worked lesson
DDD: bounded contexts and aggregates
Model language and invariants before choosing storage or transport.
3 min · Worked lesson
CQRS: different models for commands and queries
Separate change rules from read shape without assuming two databases.
3 min · Worked lesson
Event sourcing: state from a durable history
Distinguish a source of truth from ordinary logs and notifications.
3 min · Worked lesson
Event-driven services: delivery and idempotency
Treat duplicate delivery as normal and define the durable boundary.
3 min · Worked lesson
Microservices: pay for independent ownership
Extract a remote boundary only when its independence is valuable.
3 min · Worked lesson
SOA and RPC: stable service contracts
Compare service-oriented integration with smaller independently owned services.
3 min · Worked lesson
BFF: an API shaped for one client
Compose client-specific views while retaining business ownership.
3 min · Worked lesson
Serverless handlers: bounded work and retry-safe effects
Separate invocation mechanics from deterministic application behavior.
3 min · Worked lesson
Pipes and filters: data through independent stages
Compose transformations while making backpressure and errors explicit.
3 min · Worked lesson
Microkernel: a small core with explicit extensions
Extend behavior through contracts without assuming dynamic shared libraries.
3 min · Worked lesson
Web, queue, worker: make slow work durable
Separate request latency from background completion.
3 min · Worked lesson