Six lessons on event-driven workflows: push vs pull tradeoffs, JSON payload parsing, HMAC-SHA256 signature verification with constant-time compare, event dispatch via dict-of-handlers, replay idempotency on event IDs, and event-triggered Sheet writes.
Week 2 moves to direct HTTP, rate-limit awareness, and secrets. Eight questions, 80% to pass.
| Lesson | Concept | Key syntax |
|---|---|---|
| 1 | Push vs pull | tradeoffs by latency / burstiness / infra |
| 2 | Webhook payload | json.loads(s) + .get(k, {}) chains |
| 3 | HMAC verification | hmac.new(secret, payload, hashlib.sha256).hexdigest() + hmac.compare_digest |
| 4 | Event dispatch | dict-of-handlers, default branch |
| 5 | Event idempotency | set of processed IDs, mark after success |
| 6 | Webhook + state | discover spreadsheet, append parsed event |
All of week 1's verification (lessons 2-5) ran on string payloads — the engine doesn't receive HTTP. Lesson 6 is the first true side_effect.
Week 2 = requests, rate limits, secrets.
Create a free account to get started. Paid plans unlock all tracks.
Six lessons on event-driven workflows: push vs pull tradeoffs, JSON payload parsing, HMAC-SHA256 signature verification with constant-time compare, event dispatch via dict-of-handlers, replay idempotency on event IDs, and event-triggered Sheet writes.
Week 2 moves to direct HTTP, rate-limit awareness, and secrets. Eight questions, 80% to pass.
| Lesson | Concept | Key syntax |
|---|---|---|
| 1 | Push vs pull | tradeoffs by latency / burstiness / infra |
| 2 | Webhook payload | json.loads(s) + .get(k, {}) chains |
| 3 | HMAC verification | hmac.new(secret, payload, hashlib.sha256).hexdigest() + hmac.compare_digest |
| 4 | Event dispatch | dict-of-handlers, default branch |
| 5 | Event idempotency | set of processed IDs, mark after success |
| 6 | Webhook + state | discover spreadsheet, append parsed event |
All of week 1's verification (lessons 2-5) ran on string payloads — the engine doesn't receive HTTP. Lesson 6 is the first true side_effect.
Week 2 = requests, rate limits, secrets.