Designing a society
One human is a service; a society is an application. Designing the society means deciding which humans exist, what each one owns, and how they talk. Get this right and the system stays calm as it grows; get it wrong and every change needs a committee meeting.
Start with the story, not the technology
Describe what happens in the business, step by step, as events — things that happened:
Customer sat down → order placed → payment authorised → cooking started → order ready → order served → receipt sent
This technique is called event storming: write events on sticky notes in time order, then group them. Groups of closely related events reveal your humans.
Finding the humans: one job each
| Group of events | Human (service) | Owns |
|---|---|---|
| Order placed, order cancelled, order served | Waiter | Orders and tables |
| Cooking started, order ready | Chef | Kitchen tickets and preparation |
| Payment authorised, payment failed, refunded | Cashier | Payments and receipts |
| Receipt sent, "your food is ready" message | Messenger | Notifications to customers |
Each group is a bounded context: inside it, words have one precise meaning. "Order" to the Waiter means what the customer asked for; to the Chef it's a ticket with dishes to cook; to the Cashier it's an amount to collect. Each human keeps its own model — and that's fine.
Good boundaries feel like good jobs
| Healthy | Unhealthy |
|---|---|
| "The Cashier handles everything about money" | "Money logic lives partly in the Waiter, partly in the Cashier" |
| A change to payments touches one service | Every feature needs changes in four services |
| Humans mostly announce events | Humans constantly ask each other questions |
| Each human could be explained to a child in one sentence | "It's complicated…" |
If two humans must always change together or constantly call each other, they're probably one human split in two. Merge them.
The café society
Choreography or orchestration?
Two ways to coordinate a multi-step story:
- Choreography — every human listens to the town square and knows their own part, like dancers who know the routine. Loosely coupled, but the overall flow is spread across many humans. → The town square
- Orchestration — a manager tells each human what to do and tracks progress. The flow is visible in one place, at the cost of a central coordinator. → The manager
Most societies use both: choreography between humans, orchestration for complex flows within a human or for critical business processes.
Design the society around business capabilities and events, give each human one job and its own memory, and let announcements carry the story from one human to the next.