A car fleet management system (starter) built with AWS services, featuring event-driven architecture with Kafka and microservices for telemetry processing.
- Frontend - React SPA with Google OIDC via Cognito
- API Gateway - HTTP API with Cognito authorizer
- Ingestion Service - Serverless event ingestion (Lambda + SQS + Kafka producer)
- Kafka Cluster - Event streaming backbone (self-managed on AWS EC2)
- Car Telemetry Service - .NET microservice consuming telemetry events
- PostGIS Database - PostgreSQL with geospatial extensions for location data
- Realtime Notifications Service - .NET microservice for WebSocket-based real-time notifications
- Serverless-first: Low cost at low traffic, auto-scaling at high traffic
- Event-driven: Decoupled services via Kafka topics
- Resilient: SQS buffering, DLQ handling, automatic retries
- Geospatial: PostGIS for efficient location queries and spatial indexing
Serverless API for event ingestion with authentication.
- Stack: AWS Lambda, API Gateway, SQS, Cognito
- Function: Validates requests, authenticates users, queues events to Kafka
📖 Ingestion Service Documentation
.NET microservice for processing vehicle telemetry data.
- Stack: .NET 8, Kafka Consumer, PostGIS, Docker
- Function: Consumes car events from Kafka, stores geospatial data in PostGIS
📖 Car Telemetry Service Documentation
.NET microservice for real-time notifications.
- Stack: .NET 8, Kafka Consumer, Redis, WebSockets
- Function: Consumes Kafka events, pushes notifications to frontend clients via WebSockets
- Features: Real-time notifications, session management, event broadcasting
📖 Realtime Notifications Service Documentation
OrgCarFleet/
├── backend/
│ ├── ingestion-service/ # Serverless event ingestion
│ ├── car-telemetry-service/ # Kafka consumer microservice
│ └── realtime-notifications/ # Realtime notification service (WebSocket)
├── frontend/ # React SPA
│ ├── src/ # React components
│ └── package.json
├── scripts/ # Global deployment scripts
│ ├── build-and-deploy.sh # Main orchestrator
│ ├── aws-config.sh # AWS credentials
│ └── cognito-config.sh # Cognito setup
└── README.md # This file
- Node.js 20+ and npm
- .NET 8.0 SDK
- Docker and Docker Compose
- AWS CLI configured
- Kafka cluster (AWS EC2)
- PostgreSQL with PostGIS (AWS EC2)
- Redis (AWS EC2)
./scripts/build-and-deploy.sh devIngestion Service:
./backend/ingestion-service/scripts/build-and-deploy.sh devCar Telemetry Service, Realtime Notifications Service:
./backend/<folder>/scripts/build-and-deploy.sh upFrontend:
cd frontend
npm install
npm start