Getting Started
Welcome to eventkit! This guide will help you get up and running quickly.
Overview
eventkit is a production-ready kit for building event collection pipelines. Clone it, customize it, make it yours.
Quick Install
# Clone the repository
git clone https://github.com/prosdevlab/eventkit.git my-event-pipeline
cd my-event-pipeline
# Install dependencies
uv sync
# Start emulators (Firestore + Pub/Sub)
docker compose up -d
# Run the API server
export FIRESTORE_EMULATOR_HOST="localhost:8080"
export GCP_PROJECT_ID="test-project"
uv run uvicorn eventkit.api.app:app --reloadSend 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"
}
}'Response:
{"status": "accepted"}What’s Next?
- Local Development - Set up your development environment
- Architecture - Understand how eventkit works
- API Endpoints - Explore the collection API
- Configuration - Configure storage, queues, and more
Key Concepts
Flexible Ingestion
Accept any JSON payload at the edge. Invalid events go to an error store, never dropped.
Stream-Based Routing
Route events to named streams (users, events, pages) for independent processing.
Pluggable Storage
Default to GCS + BigQuery, or implement your own EventStore for any backend.
Production Patterns
- Hash-based sequencing for consistent ordering
- Ring buffer (Write-Ahead Log) for durability
- Adaptive batching for efficient storage writes
- Dead letter queue for validation failures
Architecture at a Glance
Components:
- Collection API - FastAPI endpoints (
/collect,/v1/identify,/v1/track) - Processing Pipeline - Adapters, Sequencer, EventLoader
- Storage Layer - GCS + BigQuery, Firestore, or Custom
Common Use Cases
- Build a lightweight CDP without vendor lock-in
- Collect product analytics events at scale
- Centralize event data from multiple sources
- Create custom event processing pipelines
- Prototype data architectures
Last updated on