Skip to main content

Database Architecture

Database-per-Service

Why MySQL for Transactional Services

ReasonDetail
ACID complianceRequired for financial data
Strong consistencyBalance and ledger integrity
JSON supportFlexible metadata columns
InnoDB engineACID transactions and row-level locking

Why MongoDB for Analytics

ReasonDetail
Flexible schemaEvolving analytics aggregations
Document modelNatural fit for dashboard data
Write throughputHigh-volume event ingestion
No cross-service joinsDenormalized read models

Cross-Service Data Access

:::warning No Shared Databases Services MUST NOT query another service's database. Use APIs or consume events to build local read models. :::