Real-Time Event Platform
Event-driven microservices platform with order management, risk checks, and real-time analytics. Built with Python/FastAPI, Next.js, PostgreSQL, Redis, and Elasticsearch.
The Problem
Building real-time, event-driven platforms requires stitching together fragile integrations across order management, risk assessment, and analytics. Most off-the-shelf solutions lock you into their ecosystem with limited customisation. There’s no unified system that treats the full event lifecycle — from ingestion to processing to analysis — as a single, observable pipeline.
Approach
The platform is built as a set of composable services, each owning a clear domain boundary:
- Order Management System (OMS) — FastAPI service handling event lifecycle from creation through completion, with strict Pydantic models for every state transition.
- Risk Management System (RMS) — Pre-event and real-time validation checks. Rate limits, exposure limits, and circuit breakers. Events are published to Redis pub/sub for immediate dashboard updates.
- Analytics & Search — Elasticsearch indexes every event, state transition, and audit entry. Enables pattern analysis across hundreds of dimensions.
- Dashboard — Next.js/TypeScript real-time dashboard with SSO authentication via Authlib.
The stack is Python/FastAPI with strict typing (mypy strict mode, 100% type coverage), PostgreSQL for state, Redis for real-time caching and pub/sub. Everything containerised with Docker, CI/CD with pre-commit hooks (ruff, mypy, pytest).
Current State
Actively in development. The OMS and RMS cores are functional. Currently building the analytics layer and expanding the event processing pipeline.
Related Posts
- Strict mypy, Protocol Types, and Library Design — the typing and design patterns used across platform services