Database-per-Service
Why MySQL for Transactional Services
| Reason | Detail |
|---|
| ACID compliance | Required for financial data |
| Strong consistency | Balance and ledger integrity |
| JSON support | Flexible metadata columns |
| InnoDB engine | ACID transactions and row-level locking |
Why MongoDB for Analytics
| Reason | Detail |
|---|
| Flexible schema | Evolving analytics aggregations |
| Document model | Natural fit for dashboard data |
| Write throughput | High-volume event ingestion |
| No cross-service joins | Denormalized 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.
:::