Repository navigation
Home
A self-contained, event-driven platform simulating a utility company's meter-reading, usage-aggregation, and billing pipeline. An original design — not a fork or a cloned reference app — built to demonstrate the skills a Principal Developer role expects: distributed systems design, microservices decomposition, event streaming, resilient service-to-service communication, CI/CD, and production-grade observability.
This wiki is a set of short pointers, not a duplicate of the real documentation — each page states one thing worth knowing and links to the authoritative source rather than repeating it. For the full picture, start with README.md and todo.md in the main repo.
Status: Phases 1, 2, and 3 all complete, plus two features shipped ahead of Phase 4. Phase 1's core loop (Meter Simulator → Usage Aggregation → Billing over real REST) shipped first; Phase 2 replaced those REST calls with real Kafka events through a real Confluent Schema Registry; Phase 3 added a real Account/Customer Service and re-keyed usage/billing from MeterId to AccountId, plus a real Node.js/TypeScript Notification Service delivering real webhook POSTs — this repo's first polyglot service. Since then, Usage Aggregation gained a real Green Button/NAESB ESPI usage-data export over HTTP, and Billing gained a real Stripe test-mode payment integration closing the loop from usage to billing to actual payment collection. The full five-service pipeline is verified live end-to-end, including a real webhook actually received and a real Stripe payment collected. See Account/Customer Service, Meter Simulator, Usage Aggregation, Billing, and Notification Service. See todo.md for the phase-by-phase log.
- Design Document — architecture rationale, service breakdown, Kafka event contracts, cross-cutting concerns (resiliency, idempotency, tracing, security, testing), CI/CD pipeline plan, and interview talking points
-
todo.md— the source of truth for what's done and what's left, phase by phase -
Project board — Backlog/Planned/In Progress/Verification & QA/Done, synced with
todo.md -
Aspire Orchestration — how
AppHost.csboots and wires together all 10 resources across the five-service pipeline
- Account/Customer Service — REST CRUD + seeding, verified live end-to-end
- Meter Simulator — publishes to Kafka, verified live end-to-end
- Usage Aggregation — consumes + publishes via Kafka, exports real Green Button/NAESB ESPI usage data over HTTP, verified live end-to-end
- Billing — consumes via Kafka, collects real Stripe test-mode payments over HTTP, verified live end-to-end as part of the full pipeline
- Notification Service — consumes via Kafka, delivers real webhooks, verified live end-to-end
- Portfolio page — the 60-second version
- Portfolio hub — this project's card
- GitHub repo