A practical reference design for a small product team using events in a disciplined, modest way without adopting unnecessary platform complexity.
Small-team event architecture is healthiest when it stays modest. A small product team usually does not need a platform organization, a dozen stream-processing jobs, or elaborate governance machinery from day one. It does need clarity about which business facts deserve publication, how publication stays reliable, which consumers are safe under retry, and how the team will observe and recover the system.
The main design goal is to get real leverage from events without creating a second product just to operate the event system. That usually means:
flowchart TD
A["Core product service"] --> B["Database"]
B --> C["Outbox publisher"]
C --> D["Managed broker"]
D --> E["Notification consumer"]
D --> F["Read-model projection"]
D --> G["Analytics sink"]
What to notice:
A disciplined small-team architecture usually prioritizes:
What it often avoids, at least initially:
This is not “less mature.” It is a better match for limited engineering capacity and limited operational appetite.
The simplest healthy topology often looks like:
1smallTeamEda:
2 broker: managed
3 coreDomains:
4 - orders
5 - payments
6 publication:
7 strategy: transactional_outbox
8 consumers:
9 - order-summary-projection
10 - customer-notification
11 - analytics-export
12 avoid:
13 - event-sourcing-everywhere
14 - many-shared-topics-with-unclear-ownership
Even small teams need:
The difference is that the control surface stays small enough that one team can realistically understand and operate it.
Small teams are often tempted to add platform features early “for future scale.” That is usually the wrong trigger. The stronger trigger is present pain:
Until then, modest disciplined architecture is often stronger than ambitious scaffolding.
A five-person team wants to introduce event sourcing, CQRS, a separate schema registry workflow, and a generic workflow engine before they have even stabilized their first two event consumers. What should you challenge first?
Challenge whether the architecture is solving current risks or anticipating a future platform that does not exist yet. The stronger near-term move is usually reliable publication, idempotent consumers, modest observability, and a small purposeful event surface.