• Irreversible Decisions
    • Constraints First
    • Coupling and Cohesion in Practice
    • Trade-off Sliders
    • The Boring Baseline
    • Monolith First, Split on Evidence
    • Service Boundaries That Survive Reorgs
    • Synchronous vs Asynchronous Integration
    • API Contracts and Versioning
    • Idempotency and Retries
    • Choosing a Datastore Without Regret
    • Schema Migrations Without Downtime
    • Consistency Models You Actually Need
    • Caching: The Four Questions
    • Event Sourcing and CDC: When It Pays
    • Trunk-Based Development and Branch Reality
    • Pipeline Design: Fast Feedback, Slow Gates
    • Progressive Delivery
    • Build Reproducibility and Artifact Promotion
    • Rollback Is a Feature
    • Kubernetes: What You Sign Up For
    • Infrastructure as Code That Doesn't Drift
    • Environments, Config, and Secrets
    • Multi-Tenancy and Cost Boundaries
    • The Internal Platform as a Product
    • SLOs, Error Budgets, and Saying No
    • Observability: What to Actually Wire
    • Capacity, Load Shedding, and Backpressure
    • Failure Modes: Timeouts, Breakers, Bulkheads
    • Incident Response and Blameless Postmortems
    • Threat Modeling in One Hour
    • Identity, Authentication, Authorisation
    • Secrets and Key Management
    • Supply Chain: Dependencies, SBOM, Signing
    • Least Privilege and Auditability
    • Architecture Decision Records That Get Read
    • Diagrams That Age Well
    • Runbooks and On-Call Docs
    • Design Reviews and RFCs
    • Building a Team Architecture Memory
    • GitHub
  • to navigate
  • to select
  • to close
    • Home
    • System Design in Practice
    On this page
    schema

    System Design in Practice

    Boundaries, contracts, and integration styles that survive contact with a real organisation.

    call_split

    Monolith First, Split on Evidence

    Distributed systems are a tax you pay for organisational scale, not a design goal.

    hub

    Service Boundaries That Survive Reorgs

    Draw boundaries around what changes together and who owns it, not around nouns in the domain.

    sync_alt

    Synchronous vs Asynchronous Integration

    The caller's behaviour while waiting decides this, not fashion or throughput.

    description

    API Contracts and Versioning

    A contract lets two teams move at different speeds. Without one, every change is a coordination meeting.

    restart_alt

    Idempotency and Retries

    Anything that can be retried will be retried. Design for the duplicate, because it is coming.


    © 2026 Architecture Field Notes. Built with Lotus Docs