Skip to content

Workshop 006: Telemetry Event Model (stream-processing) + ADR-018#37

Merged
erikshafer merged 2 commits into
mainfrom
design/w006-telemetry-event-model
Jun 30, 2026
Merged

Workshop 006: Telemetry Event Model (stream-processing) + ADR-018#37
erikshafer merged 2 commits into
mainfrom
design/w006-telemetry-event-model

Conversation

@erikshafer

@erikshafer erikshafer commented Jun 26, 2026

Copy link
Copy Markdown
Owner

What this is

Resumes the paused W006 Telemetry design (grill-with-docs front-loading pass R1–R8, captured 2026-06-25) and lands it as one cohesive design PR: ADR-018, the W006 Telemetry Event Model, and the cross-workshop amendments the decision triggers.

EM-direct (no Domain Storytelling pre-step). The eight grill resolutions pre-locked every design call; this session authored the ADR, walked the five slices with per-slice sign-off, and closed the spec-delta loop.

This PR's first commit is the durable grill ledger (docs/planning/2026-06-25-w006-telemetry-grill-resolutions.md, R1–R8) captured at the checkpoint-and-pause; the second commit is the full workshop + ADR + amendments below. (Previously the WIP checkpoint PR; now the finished W006 design PR.)

New artifacts

  • docs/decisions/018-…md — ADR-018 (Accepted). NearbyAvailableDrivers is a Dispatch-owned local projection, not a Telemetry-owned queryable index. Location supply over Kafka; availability over ASB (forward-constraint to Driver Profile). Eventual consistency, last-writer-wins per driver, reconciled at acceptance. Explicitly overrides the vision doc's "index that Dispatch queries" framing. Resolves W001 §11 ADR-candidate Add Skills Foundation #3; locks context-map edge Add Contributor Covenant Code of Conduct #5.
  • docs/workshops/006-telemetry-event-model.md — W006, complete. Establishes stream-processing as CritterCab's fourth modeling shape (non-event-sourced domain core; overwrite-in-place document + Kafka breadcrumb history; the lone event-sourced stream is the config singleton). 5 slices: TelemetryPolicyConfigured (config-as-events) · gRPC client-streaming ingest · DriverLocationUpdated→Kafka · LastKnownPosition store + eviction · W001 §5.3 amendment. First Kafka topic and first gRPC client-streaming surface modeled in CritterCab.

Cross-workshop amendments (same PR, per the context-map update cadence)

ADR candidates surfaced (carried, not authored here)

  1. Kafka topic-naming convention (generalize ADR-014 transport-agnostically — trigger fired at the first Kafka topic).
  2. Stream-processing as the fourth modeling shape (firm).
  3. Windowed gRPC client-streaming ingest pattern (may fit better as a skill than an ADR).

Follow-ups (not in this PR)

  • Telemetry telemetry/v1 protobuf authorship (bundled-proto session).
  • Dispatch implementation — replace NearbyAvailableDriversStub with the Kafka ⋈ ASB local document view (the first real transport wiring in the codebase).
  • Driver Profile availability publication (ASB) — the forward-constraint half of ADR-018's multi-transport projection.

Notes for review

  • The retrospective is embedded in W006 §13 (consistent with W001–W005's inline retros).
  • Context-map edge Add Contributor Covenant Code of Conduct #5's section anchor still reads …-deferred deliberately — renaming it would break inbound links from ADR-018, W006, and W001; the section body now states "locked."

…idate

Front-loaded design grill (grill-with-docs, EM-direct per the W005 playbook)
for the W006 Telemetry Event Modeling workshop. Resolves the Kafka-vs-gRPC
geospatial-supply question parked since W001 parking-lot #4 / ADR-candidate #3.

Eight resolutions (R1-R8): NearbyAvailableDrivers is a Dispatch-owned local
projection fed by Kafka (location) + ASB (availability); eventual consistency
reconciled at acceptance; Telemetry modeled as a stream-processing BC (4th
modeling shape), availability-agnostic; windowed gRPC client-streaming ingest;
H3 cell id as published-language; throttle policy via config-as-events; Kafka
topic partitioned by driverId.

Captures the ADR-018 decision statement (drafting deferred), three §11 ADR
candidates (Kafka-topic-naming, stream-processing-shape, windowed-streaming),
the workshop skeleton, and the cross-workshop amendments the eventual W006 PR
owes (ADR-018 authoring, W001 §5.3 amendment, context-map edge #5 lock).

Checkpoint-and-pause: ADR-018 authoring + the slice-by-slice event model
resume in a focused follow-up session.
@erikshafer erikshafer self-assigned this Jun 26, 2026
Resume the W006 design after the 2026-06-25 grill-with-docs pause (R1-R8). Author ADR-018 (candidate-projection ownership + telemetry geospatial supply), walk the 5 Telemetry slices (stream-processing, CritterCab's 4th modeling shape), and close the cross-workshop amendments in the same PR: W001 5.3 (parking-lot #4 closed, 11 #3 -> ADR-018), context-map edge #5 (dashed->solid), vision-doc override.
@erikshafer erikshafer changed the title design(W006): Telemetry event-modeling — grill resolutions checkpoint (WIP) Workshop 006: Telemetry Event Model (stream-processing) + ADR-018 Jun 30, 2026
@erikshafer erikshafer marked this pull request as ready for review June 30, 2026 18:46
@erikshafer erikshafer merged commit e678475 into main Jun 30, 2026
1 check passed
@erikshafer erikshafer deleted the design/w006-telemetry-event-model branch June 30, 2026 18:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant