From the CritterCrush review (2026-09-06): CritterCrush stays a single-module event-sourced sample — its DetectMutualMatch automation is same-module event forwarding, and collapsing its endpoint/handler pairs (#13 follow-up work) removes the last bus-visible commands. That's the right teaching shape for what it covers, and it means the repo still lacks a sample whose point is messaging between modules.
What that sample should demonstrate (the things CritterCrush deliberately doesn't):
- Two or more modules with real boundaries, communicating through versioned integration messages — not shared types
- Durable local queues vs. an external transport, and when each is right
MultipleHandlerBehavior.Separated actually earning its keep: two modules reacting independently to one event, with independent retry policies
MessageIdentity.IdAndDestination under a real fan-out
- Tracked-session integration tests proving the cross-module cascade end to end
Existing samples brush against this (EcommerceModularMonolith, MeetingGroupMonolith) but as ports; this one would be designed around the messaging story from scratch — possibly as CritterCrush's own later chapters (Notifications reacting to MutualMatchDetected is the natural seam the model already hotspots) or as a fresh sample.
From the CritterCrush review (2026-09-06): CritterCrush stays a single-module event-sourced sample — its DetectMutualMatch automation is same-module event forwarding, and collapsing its endpoint/handler pairs (#13 follow-up work) removes the last bus-visible commands. That's the right teaching shape for what it covers, and it means the repo still lacks a sample whose point is messaging between modules.
What that sample should demonstrate (the things CritterCrush deliberately doesn't):
MultipleHandlerBehavior.Separatedactually earning its keep: two modules reacting independently to one event, with independent retry policiesMessageIdentity.IdAndDestinationunder a real fan-outExisting samples brush against this (EcommerceModularMonolith, MeetingGroupMonolith) but as ports; this one would be designed around the messaging story from scratch — possibly as CritterCrush's own later chapters (Notifications reacting to MutualMatchDetected is the natural seam the model already hotspots) or as a fresh sample.