Polyglot Persistence
Use the right database for the right access pattern.
Rendering…
Make it your own.
flowchart LR
App[Application] --> Cmd[Write path]
App --> Q[Query path]
Cmd --> PG[(Postgres\nOLTP transactions)]
Cmd --> S3[(Object store\nuploads)]
Q --> Cache[(Redis\nhot lookups)]
Q --> ES[(OpenSearch\nfull-text + facets)]
Q --> WH[(Warehouse\nanalytics + BI)]
Q --> Graph[(Neo4j\nrelationship queries)]
ETL[(CDC / ETL)] --> WH
PG -.->|stream changes| ETL