Offline-first serverless IoT data ingestion pipeline for water quality monitoring (Lake Victoria) running entirely on LocalStack.
This project simulates a real-world IoT data ingestion system using:
-
AWS Lambda - Serverless compute for data processing
-
Amazon API Gateway - REST API endpoint for data ingestion
-
Amazon DynamoDB - NoSQL database for sensor readings
-
LocalStack - Local AWS cloud stack for offline development
- Docker and Docker Compose
- Python 3.11+
- Terraform
- Make
-
Start LocalStack
make up
-
Initialize and Deploy Infrastructure
make init make deploy
-
Test the API
make test-curl
-
Stop LocalStack
make down
Send POST requests to /ingest endpoint with:
{
"sensor_id": "sensor-001",
"ph_level": 7.2,
"turbidity": 15.3
}├── docker-compose.yml # LocalStack environment
├── infra/ # Terraform infrastructure
├── src/ # Lambda function code
├── Makefile # Development commands
└── README.md # This file
