Databases
14 pages
-
Batch Processing
stream
Unix philosophy, MapReduce, join algorithms, Hadoop vs MPP, Spark/Flink dataflow engines, Pregel graph processing
-
Data Decomposition
concept
Data disintegrators/integrators; five-step process; data domains; data sovereignty; connection quotas; polyglot persistence; database type selection; data ownership (single/common/joint); eventual consistency patterns; four distributed data access patterns
-
Data Models
database
Relational, document, graph models; schema-on-read vs write; SQL, Cypher, SPARQL, Datalog query languages
-
Designing Data-Intensive Applications
source
*Designing Data-Intensive Applications* — Martin Kleppmann
-
Encoding and Evolution
database
JSON/XML, Thrift, Protobuf, Avro; schema evolution; forward/backward compatibility; dataflow modes
-
Evolutionary Database Design
concept
Expand/contract pattern; Flyway/Liquibase; shared DB decomposition; reporting antipattern; Newman's ~12 database decomposition patterns (database view, wrapping service, tracer write, synchronize in application, etc.)
-
Foundations of Scalable Systems
source
*Foundations of Scalable Systems* — Ian Gorton
-
Martin Kleppmann
author
Author of *Designing Data-Intensive Applications*; distributed systems researcher at Cambridge; CRDT and local-first software advocate
-
Object-Relational Mapping Patterns
database
O/R mapping architectural patterns (Table Data Gateway, Row Data Gateway, Active Record, Data Mapper); behavioural patterns (Unit of Work, Identity Map, Lazy Load); structural mapping; inheritance strategies (Single/Class/Concrete Table Inheritance)
-
Partitioning
concept
Key range, hash, consistent hashing, secondary indexes (local/global), rebalancing strategies, request routing; cross-partition complexity costs
-
Pramod Sadalage
author
Co-author of *Software Architecture: The Hard Parts*; data architect at ThoughtWorks; evolutionary database design and NoSQL specialist
-
Storage Engines
database
Hash indexes, SSTables/LSM-Trees, B-Trees, OLTP vs OLAP, column-oriented storage, materialized aggregates
-
Stream Processing
stream
Log-based brokers (Kafka), stateless topology primitives, partition assignment, windowing, late event strategies, watermarks vs stream time, reprocessing, state stores (internal/external, changelog, hot replicas), effectively once processing, heavyweight vs lightweight framework comparison, stream joins, exactly-once fault tolerance; Kafka production mechanics: producer batching (acks/idempotence), consumer commit semantics, semantic partitioning, consumer groups, ISR
-
Transactions
database
ACID, isolation levels (dirty reads, read skew, write skew, phantoms), MVCC, SSI, actual serial execution, 2PL