Glossary — Every Term in the JD, Defined Precisely
The JD names ~120 technologies and concepts. This glossary defines each one to the depth an interviewer probes, and points to the phase where you build it. If a term in the JD is not here yet, that is a bug — open it as a gap.
Legend: → PNN = the phase that implements/teaches it.
A. Compute & Processing Engines
- Apache Spark — a distributed, in-memory batch+micro-batch engine. Work is a DAG of stages split at shuffle boundaries; each stage is a set of tasks (one per partition) run on executors. Key internals: shuffle, broadcast joins, Adaptive Query Execution (AQE), Tungsten memory management, spill. → P06
- Apache Flink — a true streaming (record-at-a-time) engine with managed keyed/operator state, event-time processing, checkpoints/savepoints, and exactly-once sinks. The reference engine for low-latency stateful stream processing. → P04
- Apache Hive — SQL-on-Hadoop: a metastore (table→files mapping) + a query compiler that historically generated MapReduce, then Tez, DAGs. The ancestor of the lakehouse catalog. → P07
- Apache Tez — a DAG execution framework that replaced MapReduce under Hive/Pig: avoids writing intermediate results to HDFS between steps, enabling pipelined DAGs. → P07
- MapReduce — the original Hadoop batch model:
map→ shuffle/sort →reduce, with every stage boundary materialised to disk. Slow but the conceptual root of all the above. → P07 - Amazon EMR — AWS's managed Hadoop/Spark/Flink/Hive cluster service. Flavours: EMR-on-EC2 (YARN), EMR Serverless (no cluster to manage), EMR on EKS (run Spark on a Kubernetes cluster). → P07
- AWS Glue — serverless Spark (Glue ETL) + the Glue Data Catalog (a managed Hive metastore) + crawlers. → P07, P10
- Apache Beam — a unified batch+stream programming model (the Dataflow model) that runs on multiple engines (Flink, Spark, Dataflow) via runners. → P05
- Trino / Presto — a distributed MPP query engine (no storage of its own) that federates queries over S3/Hive/Iceberg/Cassandra/etc. Trino is the actively-developed fork of PrestoDB. → P10
- Athena — AWS's serverless, pay-per-TB-scanned managed Trino over S3 + Glue Catalog. → P10
- Kubernetes-native data workloads — running Spark/Flink as K8s pods (Spark-on-K8s, Flink Kubernetes Operator) instead of YARN. → P07, P14
B. Streaming & Messaging
- Apache Kafka — a distributed, partitioned, replicated commit log. Topics →
partitions; ordering is guaranteed within a partition only; consumers track offsets
in consumer groups; durability via replication (ISR) +
acks=all. → P02 - Amazon Kinesis — AWS's managed streaming service. Shards are the unit of throughput (1 MB/s in, 2 MB/s out, 1000 records/s in); the partition key maps records to shards. Data Streams vs Firehose vs Data Analytics. → P02
- Amazon MSK — managed Kafka on AWS (MSK Provisioned / MSK Serverless). → P02
- Apache Pulsar — a Kafka-class log with a segment/broker separation (BookKeeper storage) and built-in tiered storage + multi-tenancy. The "third option." → P02
- Kafka Streams — a JVM library (not a cluster) for stateful stream processing on top of Kafka, using changelog topics + RocksDB local state. → P05
- Flink DataStream API / Flink SQL — the low-level (operators, state, timers) and declarative (SQL over streams) Flink programming surfaces. → P04
- Spark Structured Streaming — micro-batch (and continuous) streaming on Spark's SQL engine, with checkpointing to a durable store. → P05
- Akka Streams — a Reactive-Streams implementation on the Akka actor runtime; back-pressured, typed stream graphs in Scala/Java. → P05, P12
- Flume — a legacy log/event ingestion agent (source → channel → sink). The thing you migrate off of into Kafka/Kinesis. → P02
- CDC (Change Data Capture) — turning a database's row changes (via binlog/WAL, e.g. Debezium) into an event stream. The bridge from OLTP to the lakehouse. → P05
- Schema Registry — a service that stores versioned schemas and enforces compatibility rules so producers and consumers evolve safely. → P03
- Dead-letter queue (DLQ) / quarantine — a side destination for messages that fail validation/processing, with the reason attached, so the pipeline keeps flowing and bad data is preserved for diagnosis. → P02, P03
- Replay — re-reading the log from an older offset to reprocess history (the property that makes backfills and bug-recovery possible). → P02, P06
- Consumer group / rebalance — a set of consumers sharing a subscription; partitions are divided among members and rebalanced on join/leave/failure. → P02
- ISR (in-sync replicas) — the replica set caught up to the leader;
acks=all+min.insync.replicasdefines durability. → P02 - Leader election — choosing the partition replica that serves reads/writes; happens on broker failure (KRaft/ZooKeeper-coordinated). → P02
- Idempotent producer / transactions — Kafka features giving exactly-once append per partition and atomic offset+output commits within Kafka. → P02, P03
- Poison message — a malformed/unprocessable record that, without a DLQ, blocks a partition forever. → P02
C. Streaming Semantics
- Event time vs processing time — when the event happened vs when the system saw it. Aggregate in event time; use processing time only for pipeline metrics. → P04
- Watermark — a monotonic estimate flowing with the stream asserting "no events with timestamp ≤ W are still coming"; drives window emission. → P04
- Windows — tumbling (fixed, non-overlapping), sliding/hopping (overlapping), session (gap-based, dynamic). → P04
- Allowed lateness — how long after a window fires it stays open to absorb late events (re-emitting corrections) before expiring. → P04
- Checkpoint vs savepoint — automatic, engine-owned recovery snapshots vs manual, user-owned, portable snapshots for upgrades/migrations. → P04
- Barrier / checkpoint alignment — Flink injects barriers into streams; aligning them across inputs is what makes checkpoints consistent (and can stall under skew). → P04
- RocksDB state backend — an embedded LSM key-value store Flink uses to keep large keyed state on local disk (spilling beyond heap). → P04, P08
- Backpressure — downstream slowness propagating upstream as flow control; the central streaming health signal. → P01, P04
- Exactly-once / at-least-once / at-most-once — delivery+effect guarantees. "Exactly-once" = at-least-once delivery + idempotent or transactional processing = exactly-once effect. → P01
- Sessionization — grouping a user's events into sessions by inactivity gaps. → P05
D. Languages, Runtime & Functional Programming
- Scala — a JVM language blending OO and FP; the lingua franca of Spark/Flink/Kafka Streams internals and data-platform SDKs. → P12
- Java interop / JVM — Scala compiles to JVM bytecode and interops with Java; you must understand JVM memory, GC, thread pools, serialization. → P12
- Akka — an actor-model runtime for concurrent, distributed, supervised systems. → P12
- Cats — a Scala library of functional abstractions:
Functor,Applicative,Monad,Traverse,Validated,EitherT,OptionT,Resource. → P12 - Cats Effect — an effect system (
IO) giving referentially-transparent, cancelable, resource-safe concurrency. → P12 - ZIO — an alternative effect system:
ZIO[R, E, A](environment, typed error, value) with built-in dependency injection and structured concurrency. → P12 - FS2 — Functional Streams for Scala: pure, back-pressured streaming built on Cats Effect. → P12
Validated— an applicative that accumulates errors (unlikeEither's fail-fast) — the right tool for data-contract validation. → P03, P12Resource/ bracket — guaranteed acquire/release of resources even under failure or cancellation. → P12- Type-level modeling / data contracts in types — making illegal states unrepresentable so whole bug classes can't compile. → P12
E. Storage & Data Formats
- Amazon S3 — object storage; the lake's substrate. Strong read-after-write consistency (since 2020), prefix-based request scaling, request costs, lifecycle policies, encryption, cross-region replication. → P08
- HDFS — the Hadoop Distributed File System; block-based, NameNode metadata + DataNode blocks. The on-prem ancestor of S3-as-lake. → P08
- Parquet — a columnar file format: file → row groups → column chunks → pages, with per-chunk statistics, dictionary/RLE encoding, and predicate pushdown. → P08
- ORC — Optimised Row Columnar: stripes → row index → streams, with built-in indexes and bloom filters; Hive-native. → P08
- Avro — a row-oriented, schema-carrying binary format ideal for streaming/ingestion and schema evolution. → P03, P08
- Protobuf — Protocol Buffers: compact tag-based binary encoding with strict field-number-based evolution rules. The JD's preferred event payload. → P03
- JSON / CSV — text formats: ubiquitous, self-describing (JSON) or positional (CSV), but expensive and weakly typed for analytics. → P03, P08
- Cassandra — a wide-column, masterless (Dynamo-style) distributed database. Model around queries; partition key chooses distribution; tombstones, TTL, compaction strategies, tunable consistency. → P11
- DynamoDB — AWS's managed key-value/document store; partition-key + sort-key model, on-demand/provisioned capacity, GSIs/LSIs, streams. → P11
- Iceberg — an open table format: metadata files → manifest lists → manifests → data files, giving snapshot isolation, hidden partitioning, partition evolution, time travel. → P09
- Delta Lake — a table format using a transaction log (
_delta_logJSON + checkpoints) for ACID, time travel, and MERGE. → P09 - Apache Hudi — a table format optimised for upserts/incremental: Copy-on-Write vs Merge-on-Read, timeline, record-level indexes. → P09
- Hive Metastore — the catalog mapping logical tables/partitions to physical files + statistics. → P07, P10
- Glue Data Catalog — AWS's managed, Hive-compatible metastore. → P10
- RocksDB — an embeddable LSM-tree KV store; Flink/Kafka-Streams state backend. → P04
F. Lakehouse / Table-Format Concepts
- Snapshot / time travel — each commit creates an immutable snapshot; you can query "as of" a snapshot/timestamp. → P09
- Snapshot isolation / optimistic concurrency — readers see a consistent snapshot; concurrent writers detect conflicts at commit and retry. → P09
- Hidden partitioning / partition evolution — Iceberg derives partition values from columns (no extra columns) and lets you change the partition spec without rewriting old data. → P09
- Compaction / clustering / Z-order / bucketing / sorting — rewriting many small files into fewer large ones and laying data out so queries skip more of it. → P06, P09
- Small-file problem — too many tiny files → metadata + open-cost explosion + bad scan performance. The lakehouse's most common disease. → P06, P09
G. Query & Analytics Layer
- Predicate pushdown — pushing filters down to the scan so the engine reads fewer files/row-groups/pages. → P08, P10
- Partition pruning — skipping whole partitions whose values can't match the filter. → P10
- Dynamic filtering — building a filter from one side of a join at runtime to prune the other side's scan. → P10
- Broadcast join — shipping the small side to every node to avoid a shuffle. → P06, P10
- Cost-based optimisation (CBO) — using table/column statistics to choose join order and strategy. → P10
- CTE materialisation — computing a common sub-expression once and reusing it. → P10
- Lake Formation — AWS's fine-grained (table/column/row) access control + governance layer over the Glue Catalog and S3. → P10, P14
- Semantic layer / data mart — a curated, business-logic-bearing view layer over raw tables. → P10
H. Cloud-Native (AWS) Infrastructure
- IAM — Identity and Access Management: principals, policies, roles, least privilege,
cross-account access via
AssumeRole. → P14 - KMS — Key Management Service: envelope encryption, key policies, grants. → P14
- CloudWatch / CloudTrail — metrics+logs+alarms / API audit logging. → P13, P14
- EKS / Lambda / Step Functions — managed Kubernetes / serverless functions / serverless workflow orchestration. → P07, P13, P14
- VPC networking / PrivateLink — network isolation / private service endpoints that keep traffic off the public internet. → P14
- Terraform — declarative infrastructure-as-code; the way platform infra is versioned, reviewed, and promoted across environments. → P14
I. Reliability, Correctness & Governance
- SLO / SLI / error budget — the target (objective), the measured indicator, and the allowed failure budget that gates change velocity. → P13
- Lineage — the dataset/field-level graph of "what was computed from what." → P13
- Data quality dimensions — freshness, volume, uniqueness, referential integrity, schema validity, semantic validity, cardinality drift. → P13
- Idempotency / dedup / outbox — making re-processing safe (no double effects). → P01, P05
- Backfill / reprocessing — recomputing historical outputs correctly and reproducibly. → P06, P13
- Data contract — an enforced agreement (schema + semantics + SLA + ownership) between a producer and its consumers. → P03
- PII classification — tagging fields by sensitivity to drive masking, access, and retention. → P14
- Blast radius / failure domain — the set of things that fail together; the first question in any incident. → P01, P13
- ADR (Architecture Decision Record) — a short, durable record of a decision and its context/tradeoffs/consequences. → P15
Cross-reference: the one-page numbers and decision rules live in CHEATSHEET.md.