One digital-city program stores citizen profiles as documents, fraud links in a graph, and hot session data in a key-value cache. What persistence approach does this illustrate?
Select an answer to reveal the explanation.
Short Explanation
Different jobs, different toolboxes—that is polyglot persistence. Profiles like documents, relationships like graphs, sessions like key-value. Mixing store types on purpose beats one-size-fits-none.
Full Explanation
Storing citizen profiles as documents, fraud links in a graph, and hot sessions in a key-value cache is polyglot persistence: multiple specialized stores chosen for distinct access patterns within one digital-city program. That approach avoids forcing every civic dataset into a single model. Mandating one relational schema forever for all of those shapes recreates impedance mismatch and scale limits the teams already sidestepped. Replacing all databases with printed binders abandons online service levels residents expect. Using only one graph engine for profiles, sessions, and meter telemetry alike overfits relationship traversal to workloads that need documents or simple keyed gets. Exam caveat: polyglot persistence increases operational complexity—backups, identity, and consistency across stores must be designed deliberately. Operational check: map each dataset to its store and SLA, confirm no single engine is misused as a universal hammer, and document cross-store keys (citizen id) used to correlate profiles, sessions, and fraud nodes. In production terms for polyglot persistence across civic stores, assign an owning team, wire a dashboard that shows the pattern is healthy under peak civic load, and require a staging drill that rehearses failure and recovery before resident impact. Revisit the choice when traffic shape, retention, or integrity needs change, and keep a named rollback owner on the change record. Re-test both the happy path and the failure path for polyglot persistence across civic stores after material dependency upgrades so regressions are caught before the next public release.