DDD in Go: designing when the language doesn't enforce the rules | Meetlabs