Skip to content

README: mermaid architecture and sequence diagrams - #6

Open
coderconnoisseur wants to merge 1 commit into
cleanup-events-healthfrom
readme-architecture
Open

coderconnoisseur wants to merge 1 commit into
cleanup-events-healthfrom
readme-architecture

Conversation

@coderconnoisseur

Copy link
Copy Markdown
Owner

Stacked on #5 (`cleanup-events-health`). Merge #4 and #5 first, then retarget this PR to `master`.

Changes

  • Architecture: replaces `assets/Architecture.png` (which was outdated and has been deleted) with a Mermaid flowchart of the real system:
    • `rider-simulator` → `api-gateway` (HTTP) → `ride.requested` → pricing → `ride.priced` → matching → `ride.matched` / `ride.unmatched` → assignment, with the two assignment consumer groups.
    • Each consumer's dead-letter topic (`.dlq`).
    • Redis: `drivers:locations` (GEO), `driver:lock:{id}`, `driver:assigned:{id}`, `ride:driver:{rideID}`.
    • `driver-simulator` updating locations and releasing drivers, and Prometheus scraping the four services.
    • Every edge was checked against the code.
  • Request flow: Mermaid sequence diagram for one ride, from `POST /rides` through the lock/assign or unmatched branch to `GET /rides/{ride_id}`.
  • Refreshed sections: component table (event contracts and shared runtime), a health and readiness endpoint table, and known limitations (readiness is shallow; test coverage now covers the contracts and probes).

Benchmark numbers still predate Phase 1 and are flagged in the README; re-run the ladder before quoting new figures.

Docs only, no code changes.

The old assets/Architecture.png showed rider-simulator writing to Kafka
directly and omitted api-gateway, assignment-service, ride.unmatched and
the DLQ topics. It is replaced by:

- a flowchart of the real topology: consumer groups, <topic>.dlq
  dead-letter topics, the Redis keys (drivers:locations, driver:lock,
  driver:assigned, ride:driver) and the driver-simulator and Prometheus
  edges, each checked against the code
- a sequenceDiagram of one ride from POST /rides through pricing,
  matching (lock and assign, or unmatched), assignment and GET /rides

Also refreshes the component table (event contracts and shared runtime),
the health endpoint table, the known limitations (readiness is shallow,
test coverage now includes the contracts and probes), and drops the
unused PNG.

Benchmark numbers still predate Phase 1 and must be re-run.
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