@@ -22,22 +22,32 @@ loan documents.
2222- ** Database:** PostgreSQL with pgvector (metadata + embeddings)
2323- ** Blob storage:** Azure Blob Storage (original PDFs, optional)
2424
25- ### Planned (not yet implemented)
26- - ** Autoscaling:** KEDA (queue-depth based)
27- - ** Monitoring:** Prometheus + Grafana
28- - ** Chaos engineering:** Chaos Mesh
25+ ### Implemented (Day 3)
26+ - ** Autoscaling:** KEDA ScaledObjects (queue-depth based, YAMLs in k8s/scaling/)
27+ - ** Monitoring:** Prometheus + Grafana dashboard (grafana/documentstream-dashboard.json)
28+ - ** Chaos engineering:** Chaos Mesh experiments (k8s/chaos/)
29+ - ** Load testing:** Locust (locust/locustfile.py)
30+ - ** CI/CD:** GitHub Actions deploy workflow (.github/workflows/deploy.yml)
31+
32+ ### Not yet done (needs live AKS cluster)
33+ - Azure infra provisioning (scripts ready in infra/)
34+ - Build/push images to ACR and deploy to AKS
35+ - Import Grafana dashboard, apply KEDA/Chaos manifests
36+ - End-to-end demo rehearsal
2937
3038## Project Structure
3139- ` src/gateway/ ` — FastAPI API + web UI (dual-mode: sync or async via Redis)
3240- ` src/worker/ ` — Extract, classify, semantic, store modules + Redis queue + worker runners
3341- ` src/generator/ ` — PDF document generator (5 templates, CLI tool)
3442- ` demo_samples/ ` — One complete loan scenario (5 PDFs, committed to git for visibility)
3543- ` tests/ ` — All tests (83 tests)
36- - ` k8s/ ` — Kubernetes manifests (empty — Day 2)
37- - ` infra/ ` — Azure setup/teardown scripts (empty — Day 2)
38- - ` locust/ ` — Load testing (empty — Day 3)
39- - ` grafana/ ` — Dashboard JSON (empty — Day 2)
40- - ` docs/ ` — Documentation (architecture, classification, demo guide, dictionary)
44+ - ` k8s/base/ ` — Kubernetes base manifests (9 files: namespace, configmap, deployments, service, ingress, kustomization)
45+ - ` k8s/scaling/ ` — KEDA ScaledObjects for extract, classify, store workers
46+ - ` k8s/chaos/ ` — Chaos Mesh experiments (pod-kill, network-delay, cpu-stress)
47+ - ` infra/ ` — Azure setup/teardown/helm-install scripts
48+ - ` locust/ ` — Locust load test (locustfile.py)
49+ - ` grafana/ ` — Grafana dashboard JSON (7 panels)
50+ - ` docs/ ` — Documentation (architecture, classification, demo guide, dictionary, implementation plan)
4151- ` journal/ ` — Development journal
4252
4353## Commands
@@ -59,7 +69,8 @@ loan documents.
5969- Workers use Redis consumer groups for at-least-once delivery
6070- SIGTERM graceful shutdown on all workers (finish current message before exiting)
6171
62- ### Target architecture (Day 2-3)
63- - Each pipeline stage as a separate K8s Deployment scaled by KEDA
72+ ### Architecture
73+ - Each pipeline stage is a separate K8s Deployment scaled by KEDA
6474- Documents flow through Redis Streams: raw-docs → extracted → classified → stored
6575- Store worker persists to PostgreSQL (pgvector) + Azure Blob Storage
76+ - CI/CD: ci.yml (lint+test), docker.yml (ghcr.io push), deploy.yml (ACR build + AKS deploy)
0 commit comments