Skip to content

Local Setup

Local development targets the event-driven-serverless-platform-demo monorepo. Terraform
HashiCorp Terraform — provisions all platform infrastructure through five modules in `terraform/`.
provisions AWS
Amazon Web Services — cloud platform for ingest, processing, storage, API, and portal hosting in this walkthrough.
resources; services and the portal can be developed and tested locally.

Terminal window
git clone https://github.com/jajera/event-driven-serverless-platform-demo.git
cd event-driven-serverless-platform-demo

Confirm Tools and Accounts are installed.

Python 3.14 services live under services/:

ServicePathRuntime
Ingest-syncservices/ingest-sync/

Python 3.14 zip Lambda
AWS Lambda — serverless compute for ingest-sync, query-api, reprocess-api, and the processor container image.

Query APIservices/query-api/Python 3.14 zip Lambda
Reprocess APIservices/reprocess-api/Python 3.14 zip Lambda
ProcessorContainer image (external)

Python 3.13 in ghcr.io/platformfuzz/tec-processor-image

Each service includes tests under tests/:

Terminal window
cd services/ingest-sync && python3 -m pytest
cd services/query-api && python3 -m pytest
cd services/reprocess-api && python3 -m pytest

Terraform packages zip Lambdas during apply. To rebuild manually:

Terminal window
./scripts/build-lambda-packages.sh
Terminal window
cd web
npm install
npm test
npm run build

Build output lands in web/dist/.

After local changes, ship to the hosted portal:

Terminal window
export WEB_SOURCE_DIR="$(pwd)/web"
export AMPLIFY_APP_ID="$(terraform -chdir=terraform output -raw amplify_app_id)"
export VITE_API_URL="$(terraform -chdir=terraform output -raw api_url)"
./scripts/deploy-amplify.sh

Requires a prior Terraform apply with the presentation layer enabled.

The processor
Processor Lambda container — runs PyTECGg calibration per SQS message; adopted when a Batch on Fargate parallel-execution quota increase was rejected. Image from `ghcr.io/platformfuzz/tec-processor-image` mirrored to ECR.
runs as an external container image. This repo mirrors it to ECR
Amazon Elastic Container Registry — stores the mirrored processor Lambda container image at deploy time.
— it does not maintain processor source code locally. To deploy a different tag:

Terminal window
./scripts/sync-processor-image.sh <tag>
terraform -chdir=terraform apply -var="processor_image_tag=<tag>"