You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Status: Active | Owner: Architecture Board | Purpose: Demonstrate that Evolith governance drives real product decisions
This document records concrete cases where teams used Evolith as their architecture authority, contributed lessons back, or promoted local decisions into reusable standards.
How to Read This Document
Each case follows the Promotion Lifecycle:
Product Observation → ADR Proposal → Architecture Board Review → Accepted as Standard → Back-promoted to Evolith
Not every observation becomes a standard. Some remain product-specific. The matrix below shows which path each case took.
Promotion Cases
Case 1 — Transactional Outbox Pattern
Field
Value
Origin
UMS product
Problem Observed
Async state propagation caused duplicate events when the HTTP response returned before the outbox relay committed
Local Solution
UMS implemented idempotent outbox consumer with deduplication key
Promotion Trigger
Multiple teams encountered same issue independently
ADR Submitted
ADR-0033 — Transactional Outbox Pattern
Outcome
Accepted as core standard. Canonical pattern cp-02 created for .NET implementation
Status
ACCEPTED
Case 2 — Schema-per-Context Boundary Enforcement
Field
Value
Origin
UMS product
Problem Observed
Cross-schema SQL joins in reporting queries created hidden coupling between bounded contexts
Local Solution
UMS enforced schema isolation via CI gate with automated join detection
Promotion Trigger
ADR-0031 drafted after two incidents caused by cross-context queries