Domain service blueprint
Setiap domain memiliki satu database owner. Runner memiliki identity/tenant/RBAC/HR; Billing memiliki subscription dan entitlement; Catalog memiliki product dan price; Commerce memiliki transaksi customer; Inventory memiliki stock ledger.
Pemisahan HTTP service hanya boleh dilakukan setelah contract event, inbox/outbox, observability, idempotency, replay, reconciliation, dan operational ownership siap. Tidak aman memecah service hanya berdasarkan folder atau port.
| Boundary | Input lintas domain | Output lintas domain |
|---|---|---|
| Runner | session/auth context | tenant/member/permission projection |
| Billing | usage metering idempoten | entitlement projection |
| Catalog | tenant/RBAC composition | product/price event/projection |
| Commerce | catalog/entitlement projection | order/reservation command/event |
| Inventory | catalog projection, reservation command | stock/reservation outcome |
Tidak ada join atau Prisma transaction lintas database. Mutasi lintas boundary memakai local transaction + outbox, lalu publisher/inbox dedupe, retry terbatas, compensation, dan reconciliation.