engineering docs

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.

BoundaryInput lintas domainOutput lintas domain
Runnersession/auth contexttenant/member/permission projection
Billingusage metering idempotenentitlement projection
Catalogtenant/RBAC compositionproduct/price event/projection
Commercecatalog/entitlement projectionorder/reservation command/event
Inventorycatalog projection, reservation commandstock/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.