← Previous Chapter: Part 9: Transactional Outbox & Sagas | Series Hub
Answer-first: Architecture Decision Records (ADRs) provide an immutable, version-controlled record of structural choices. This chapter documents all 24 production ADRs covering database selection (PostgreSQL + JSONB), messaging (Kafka), monorepo governance (Rush), framework (Kratos v2), and authentication (BFF + HttpOnly cookies).
Summary of Key Production ADRs ADR # Decision Title Selected Option Key Trade-Off Rationale ADR-001 Primary Backend Language Golang 1.25+ Sub-millisecond startup, low memory footprint, high concurrency goroutines. ADR-002 Microservice Framework Kratos v2 Native Protobuf annotations, Google Wire compile-time DI, Clean Architecture. ADR-003 Monorepo Tooling Microsoft Rush + PNPM Strict symlink isolation, phantom dependency elimination, polyglot support. ADR-004 Primary Database PostgreSQL (JSONB) ACID compliance, JSONB GIN indexing for dynamic E-Commerce attributes. ADR-005 Event Streaming Apache Kafka High-throughput durable event log, replayability for new microservices. ADR-006 Inter-Service Transport gRPC / Protobuf Binary payload efficiency, type-safe API contracts, auto-generated SDKs. ADR-007 Client Gateway grpc-gateway Zero-maintenance REST/JSON exposure from existing Protobuf definitions. ADR-008 Distributed Transactions Saga + Outbox Eliminates blocking 2-Phase Commit locks while ensuring eventual consistency.