Solving the 'God Object' Problem with Shared Identity

CodeOpinion (Derek Comartin)
CodeOpinion (Derek Comartin)Jun 10, 2026

Why It Matters

Adopting shared identity over a monolithic model cuts coupling, enabling scalable, maintainable architectures that handle complex workflows without fragile dependencies.

Key Takeaways

  • Shared identity, not shared model, prevents god object growth.
  • Separate workflows own distinct data, behavior, and responsibilities.
  • Events should signal facts, not distribute full data across services.
  • Decision-making must consider tolerance for stale information versus synchronous calls.
  • View composition can satisfy UI queries without duplicating data across boundaries.

Summary

The video tackles the classic "god object" dilemma by advocating a shift from a monolithic shared model to a lightweight shared identity. Using a shipment as a running example, the presenter shows how compliance, billing, and dispatch each graft their own fields onto a single entity, creating an unmanageable central object that every subsystem depends on. Key insights include treating each workflow—dispatch, compliance, billing—as an autonomous bounded context that owns its specific data and behavior. Events become simple fact‑notifications (e.g., "shipment created" with an ID) rather than carriers of full payloads, preventing data duplication across services. The speaker stresses evaluating whether a decision can tolerate stale information, opting for asynchronous event‑driven data when possible and resorting to synchronous calls only for truly authoritative checks. Notable examples illustrate the approach: dispatch uses driver and vehicle availability events, compliance tracks hazmat and customs data, and billing waits for invoice‑status events. The speaker emphasizes that UI needs can be met through view composition, avoiding the temptation to replicate data merely for display purposes. The implication for architects is clear: by decoupling responsibilities and sharing only identity, systems stay modular, scale more easily, and reduce the risk of cascading changes. This strategy also guides teams on when to accept eventual consistency versus when to enforce real‑time validation, shaping more resilient microservice designs.

Original Description

Sharing full data models across boundaries is an architectural trap. Instead of replicating state and behavior, I show a practical example of how to maintain defined boundaries by sharing identity.
We’ll explore why replicating data across your system creates friction and how a 'Shared Identity' approach simplifies workflows without the need for complex data synchronization.
If you're building microservices or a modular monolith, managing how you share data between boundaries is one of the most important things to avoiding tight coupling.
🔗 Kurrent
💥 Join this channel to get access to a private Discord Server and any source code in my videos.
🔥 Join via Patreon
✔️ Join via YouTube
0:00 The God Object Trap
1:15 Why Shared Models Fail
3:30 Defining Boundaries: Identity vs State
5:45 Practical Example: Order to Billing Workflow
8:10 Handling Queries and Data Requirements
10:00 Final Architectural Summary

Comments

Want to join the conversation?

Loading comments...