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

Lesson 4.2 check

1. Kafka envelope includes…