← Course map

GO LEARNING PATH · 19 LESSONS

Go architectures

Compare monoliths, layers, hexagonal and clean designs, DDD, CQRS, events and distributed services.

  1. Packages follow responsibilities, not a diagram

    Choose cohesive package boundaries and keep concrete dependencies at the edges.

    3 min · Worked lesson

  2. 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

  3. 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

  4. Simple monolith: start with one executable

    Keep a small application understandable without premature service boundaries.

    3 min · Worked lesson

  5. Layered architecture: transport, application, storage

    Separate responsibilities without confusing logical layers with deployed tiers.

    3 min · Worked lesson

  6. Modular monolith: boundaries inside one deployment

    Give business capabilities explicit APIs while retaining local transactions.

    3 min · Worked lesson

  7. Clean and Onion: dependencies point toward policy

    Keep domain policy independent of framework and database details.

    3 min · Worked lesson

  8. Vertical slices: organize around a use case

    Keep feature changes together without duplicating shared invariants.

    3 min · Worked lesson

  9. DDD: bounded contexts and aggregates

    Model language and invariants before choosing storage or transport.

    3 min · Worked lesson

  10. CQRS: different models for commands and queries

    Separate change rules from read shape without assuming two databases.

    3 min · Worked lesson

  11. Event sourcing: state from a durable history

    Distinguish a source of truth from ordinary logs and notifications.

    3 min · Worked lesson

  12. Event-driven services: delivery and idempotency

    Treat duplicate delivery as normal and define the durable boundary.

    3 min · Worked lesson

  13. Microservices: pay for independent ownership

    Extract a remote boundary only when its independence is valuable.

    3 min · Worked lesson

  14. SOA and RPC: stable service contracts

    Compare service-oriented integration with smaller independently owned services.

    3 min · Worked lesson

  15. BFF: an API shaped for one client

    Compose client-specific views while retaining business ownership.

    3 min · Worked lesson

  16. Serverless handlers: bounded work and retry-safe effects

    Separate invocation mechanics from deterministic application behavior.

    3 min · Worked lesson

  17. Pipes and filters: data through independent stages

    Compose transformations while making backpressure and errors explicit.

    3 min · Worked lesson

  18. Microkernel: a small core with explicit extensions

    Extend behavior through contracts without assuming dynamic shared libraries.

    3 min · Worked lesson

  19. Web, queue, worker: make slow work durable

    Separate request latency from background completion.

    3 min · Worked lesson