Building an enterprise service in Go
summary
Claims that Go handles core enterprise domains by porting the Java Cargo DDD sample into two Go services: Go DDD for the shipping domain and Pathfinder as a routing engine, plus an Angular front end. Uses hexagonal architecture: domain-first packages, interfaces for repositories, inversion of control to keep domain free of infra. Demonstrates entities as pointer receivers, value objects as value receivers, Postgres adapters, and uses gokit to decorate services for logging and metrics. Project is functional but intentionally incomplete and refactor-ready.
AI-written summary · about
chapters (14)
- 0:00The case for open source
- 1:38Understanding business domain
- 3:40Introducing Domain-Driven Design
- 5:56The shipping sample project
- 7:15Porting to Go
- 8:55Architectural layering
- 10:34Domain layer implementation
- 12:21Entities vs value objects
- 14:35Application services
- 16:34Infrastructure layer
- 17:36Using Go Kit
- 18:50Project organization
- 21:09Wire up and conclusion
- 22:55Future work and Q&A
related talks
49mExploring domain driven design in Go
29mRethinking Domain-Driven Design in Go
44mGo in Domain Driven Design
47mDomain-Driven Design in Go — It Doesn't Hurt (Much)
30mFrom Chaos to Domain Driven Design
42mFrom Chaos to Domain Driven Design in Go
34mWriting idiomatic Go using Domain Driven Design
44mHow Do You Structure Your Go Apps?
