Operational vs Analytical Store
The separation between the store serving the application's transactions and the one serving reporting and analysis, and the mechanism connecting them.
The most common and most defensible instance of polyglot persistence, because the two workloads have genuinely opposite requirements: many small indexed writes with strict latency, versus few large scans with no latency requirement at all.
Running both on one store produces trouble in both directions. Analytical queries cause I/O contention, evict the buffer cache the transactional workload depends on, and hold long read locks; meanwhile they are themselves slow, because row-oriented indexed storage is the wrong shape for a scan over a hundred million rows.
The connection between the two is the design decision. CDC is usually the right mechanism — no load on the source, captures every change including deletes, and needs no application change. Event-driven propagation is better where the analytical model should reflect business events rather than row deltas. Batch extraction remains fine where hourly or daily freshness is sufficient and simplicity is worth more than latency.
The honest counterweight: for small and medium systems this is over-engineering. A read replica with a few analytical indexes serves reporting adequately and avoids a whole pipeline. Introduce the split when analytical load is measurably interfering, not on principle.