eventkit
Event ingestion and processing kit for Python.
Overview
eventkit is a production-ready kit for building event collection pipelines. Clone it, customize it, make it yours.
Philosophy: Provide a solid starting point with battle-tested patterns, then get out of your way. Customize for your specific needs.
Key Features
- Flexible ingestion - Accept any JSON payload with Segment-compatible API
- Stream-based routing - Separate processing pipelines by event type for isolation and scalability
- Adapter pattern - Pluggable validators for multiple event formats and sources
- Pluggable storage - Write to GCS + BigQuery (default) or implement custom backends
- Error handling - Built-in dead letter queue for validation failures and retries
- Type-safe - Full Pydantic v2 validation with strict typing throughout
- Async-first - Built on FastAPI with async/await for high throughput
- Cloud-native - Designed for Cloud Run, GKE, and containerized deployments
Quick Start
# Clone and customize
git clone https://github.com/prosdevlab/eventkit.git my-event-pipeline
cd my-event-pipeline
uv sync
# Start local dev
docker-compose up -d # GCS + PubSub emulators
uv run uvicorn eventkit.api.app:app --reload
# Send your first event
curl -X POST http://localhost:8000/api/v1/identify \
-H "Content-Type: application/json" \
-d '{
"userId": "user_123",
"traits": {
"email": "user@example.com",
"plan": "enterprise"
}
}'Use Cases
- Build a lightweight CDP without vendor lock-in
- Collect product analytics events at scale
- Centralize event data from multiple sources (web, mobile, server-side)
- Create custom event processing pipelines with your own business logic
- Prototype and validate data architectures before committing to enterprise solutions
Next Steps
- Getting Started - Install and run eventkit
- Core Concepts - Understand the architecture
- Guides - Learn common patterns and workflows
- API Reference - Explore the API surface
Last updated on