CDC Aggregations pattern
Small demo app to demonstrate the CDC pattern for serving aggregated data.
Curious for more? Here are 3k words about the project.
Technologies used
Web app
- Python back-end: FastAPI server
- Front-end: htmx + Tailwind
Infrastructure:
- PostgreSQL
- Debezium
- Apache Pulsar
- Docker Compose
Getting started
Installing mise is recommended but not required.
With mise:
docker compose up -d
mise run server
mise run worker
mise run server
mise run worker
Without:
docker compose up -d
uv run -- uvicorn aggregations.webapp.app:app --reload
uv run -- python -m aggregations.aggregator.worker
uv run -- uvicorn aggregations.webapp.app:app --reload
uv run -- python -m aggregations.aggregator.worker
A git hook is also provided to ensure committed code is well formatted and checked, it can be installed with mise run hooks or by copying the files in the hooks directory to .git/hooks.