Exploring domain driven design in Go
summary
Shows concrete DDD techniques applied in Go: uses Go package structure as context maps, demonstrates value objects (string-backed types with validation), aggregate roots with explicit constructors and domain methods, and a repository interface plus a Postgres subpackage implementation that returns typed errors. Argues this keeps code idiomatic Go rather than Java-style patterns, explains anti-corruption layers and CDC/event approaches for cross-boundary sync, and cites the NHS £10 billion failure as a motivation to prioritize domain understanding. Sample code repo is provided.
AI-written summary · about
chapters (12)
- 0:00Introduction and speaker background
- 1:07What is Domain Driven Design
- 3:57Why DDD matters for business
- 6:28Strategic design and context mapping
- 8:16Real-world example: Email validation
- 11:44Go packaging for boundaries
- 17:50Strategic design patterns recap
- 18:54Tactical design: Value objects
- 23:49Tactical design: Aggregate roots
- 29:04Tactical design: Repository pattern
- 34:46Idiomatic Go with DDD patterns
- 35:29Q&A session
related talks
47mDomain-Driven Design in Go — It Doesn't Hurt (Much)
34mWriting idiomatic Go using Domain Driven Design
42mFrom Chaos to Domain Driven Design in Go
29mRethinking Domain-Driven Design in Go
44mGo in Domain Driven Design
26mBuilding an enterprise service in Go
59mDomain-Driven Design - Where Rubber Meets the Road
30mFrom Chaos to Domain Driven Design
