Chapter 33 — Further Reading

The landscape (everyone)

  • Martin Kleppmann, Designing Data-Intensive Applications — the best single source on data models (relational, document, graph), storage engines, and the trade-offs. Chapters 2–3 map directly onto this chapter. Strongly recommended.
  • "NoSQL distilled" (Sadalage & Fowler) — a concise tour of the four families and when each fits.

By family (💻 Developer · 🏗️ DBA)

  • MongoDB docs / "Data modeling in MongoDB" — embedding vs. referencing; where document modeling helps and where it hurts (the integrity trade-offs of Chapter 1's Lumen).
  • Redis docs / "Redis as a cache" — caching patterns, TTLs, eviction (Case Study 1).
  • Cassandra: "Data modeling by query" — designing tables around access patterns; why it scales writes.
  • Neo4j / Cypher tutorials — graph modeling and traversal (Case Study 2); when graph beats joins.

Theme #4: PostgreSQL alternatives (💻 Developer)

  • PostgreSQL JSONB (Chapter 16) — covers most document needs.
  • "Is PostgreSQL good enough?" essays — the common finding that one capable relational database replaces several specialized stores.
  • pgvector, PostGIS, full-text, hstore — PostgreSQL extensions covering "specialized database" needs (Chapter 36).

Consistency & scale (🔬 CS Student)

  • CAP theorem and BASE — read ahead to Chapter 35 for the consistency/availability trade-offs NoSQL systems make.
  • "Eventual consistency" explainers — what it means for your application's correctness.

Reference (this book)

  • Chapter 16 — Advanced SQL: JSONB/full-text (the PostgreSQL answer to document/search).
  • Chapter 35 — Distributed Databases: CAP, sharding, NewSQL.
  • Chapter 37 — The Database Decision: the framework for choosing among all of these.

Do, don't just read

  • For one "we need NoSQL" idea, prototype the PostgreSQL version (JSONB / full-text / recursive CTE) and judge whether it suffices (theme #4).
  • Try a graph query (e.g., a small Neo4j sandbox) for a deep-traversal problem and compare to the equivalent SQL self-joins.
  • Add a Redis cache (Case Study 1) in front of a hot Mercado query and measure the read-load reduction.

Next: Chapter 34 — Data Warehousing: databases built for analytics.