Compare Redis, Neo4j, CouchDB, and other NoSQL options through the Clojure design choices that affect caching, graph traversal, replication, and analytics.
Not every NoSQL problem is a document-store problem. This chapter surveys other database shapes and focuses on the Clojure design consequences: cache invalidation, graph query boundaries, document replication, and real-time analytics pipelines.
| Reader focus | Why it matters |
|---|---|
| Redis | Use key-value and pub/sub features deliberately instead of hiding them behind a generic repository. |
| Graphs and documents | Let the database model shape the Clojure boundary API. |
| Selection discipline | Choose stores by access pattern, latency, consistency, and operational ownership. |
Read the child lessons as a sequence of design decisions. The goal is not to memorize every database feature, but to learn where Clojure’s data-first style makes database code easier to test, inspect, and operate.