11---
22---
3+ ## encoding
4+ backward comp: old data, new code
5+
6+ breaking:
7+ deleting required fields
8+ changing field types
9+
10+ keep unknown fields
11+ tags vs names: compact + rename later
12+
13+ schema evolution
14+ avro
15+ protobuf
16+
317## ipc
418db
519api
620msg passing
721
822push: pubsub, ws, sse, webhook
923pull: query, poll
24+ q: decouple, buffer
1025
11- stream: events
12- batch: cron
13-
14- req-resp
15- q
16-
17- MPI: message passing interface
26+ MPI
27+ message passing interface
1828no central coordinator
1929nodes communicate directly
2030
31+ ## delivery guarantees
32+ at-most-once
33+ at-least-once: retries + idempotent receiver
34+ exactly-once: at-least once + dedup
2135
22- ## batch
36+ producer: add uniq msg ids, retry, track sent msgs on outbox table
37+ consumer: store seen ids, dedup, process+ack in tx
38+
39+ producer retry + consumer dedup
2340
41+ ## batch
2442immutable inputs
2543atomic ops
2644
@@ -42,7 +60,6 @@ spark df
4260Delta lake: parquet + transaction log + metadata
4361
4462## stream
45-
4663immutable events
4764side effects
4865
@@ -61,17 +78,12 @@ watermark
6178backpressure
6279circuit breaker
6380
64- exactly once
65- idempotence + atomic commits
81+ exactly once: idempotence + tx commits
6682
6783probabilistic dsa like bloomfilter, hyperloglog
6884
69- windows
70- fixed
71- overlapping
72- sliding
73- session
85+ windows: fixed, overlapping, sliding, session
7486
7587stream + stream : window
7688stream + table : enrich
77- table + table : materialized view of join
89+ table + table : materialized view of join
0 commit comments