Designing complex use cases in Go with DDD
04:16 14 Nov 2025

Colleagues, how do you structure complex use cases in your Go projects? We are using a DDD approach. I’ve encountered a scenario where a single core business operation needs to trigger multiple additional actions: semantic chunking, handling funds deduction, generating personalized instructions for a user, launching a heavy asynchronous process, and monitoring its execution.

It’s important not to turn the main use case into a “god object.” I tried splitting the large use case into separate operations and injecting them via interfaces within the same use case. These components don’t call each other directly, but:

  • the main orchestrator still remains overloaded;

  • the number of dependencies (even though they are interfaces) keeps growing;

  • it feels like this setup will only get harder to maintain in the future.

I’m interested in how other developers structure similar scenarios in Go.

Any real-world architectural examples or best practices would be appreciated.

go architecture domain-driven-design software-design clean-architecture