A transit desk uses Spark and Kafka to refresh arrival estimates every few seconds, then riders query those estimates through a fast document store. What role is NoSQL playing?
Select an answer to reveal the explanation.
Short Explanation
Streaming cooks the fresh arrival estimates; NoSQL is the counter where riders look them up. The document store serves what Spark and Kafka keep updating—it does not turn into Kafka or the JobTracker. You still need that serving layer for snappy queries.
Full Explanation
In a transit desk that refreshes arrival estimates with Spark and Kafka every few seconds, NoSQL’s role is serving those continuously updated results to riders—not replacing Kafka as the event log or Spark as the compute engine. Streaming writes curated estimates; the document store answers fast keyed queries. Replacing Kafka brokers so stream topics exist only as relational foreign keys abandons the messaging backbone. Acting as the sole MapReduce JobTracker confuses a serving database with Hadoop resource/job control history. Claiming streaming pipelines never need a queryable serving layer ignores how mobile apps actually read estimates. Exam caveat: keep clear boundaries—Kafka transports, Spark computes, NoSQL serves—so outages are diagnosed by tier. Operational check: trace one estimate from Kafka topic through the Spark job’s write into the document store and a rider app read, confirming each tier’s responsibility and SLO. In production terms for NoSQL as serving layer beside Spark/Kafka, 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 NoSQL as serving layer beside Spark/Kafka after material dependency upgrades so regressions are caught before the next public release.