Book 4 · Lesson 4.2
Event schemas (Git, Jira, Slack)
- Compare vendor payload shapes
- Explain ingestion envelope id + source + payload
- Design a new source field without breaking consumers
Prerequisites: 4.1
Team Radar ingests heterogeneous dev signals — one Kafka envelope, many payload shapes.
Canonical envelope (at publish)
{
"id": "uuid",
"source": "github",
"payload": { "action": "opened", "title": "…" }
}
EventSchemaExplorer — toggle GitHub, Jira, Slack examples.
Future packages/types/
Shared Rust/TS types can live in packages/types/ — today ingestion uses serde_json::Value for flexibility in Stage 1.
Teach-back prompt
Why is source a top-level field instead of buried in payload?
Design an event schema
Lab complete — nice work.