Gaps & Roadmap
Known limitations, open decisions, and planned work as of 2026-08-31.
Last verified against the live codebase: 2026-08-31 — every claim below was checked directly against blitz, fin-infra (including applied Terraform state), and this repo, not carried forward from an earlier draft. If you're reading this much later, re-verify before trusting a "not started" or "applied" status at face value — deploy counts and Terraform state are exactly the kind of thing that drifts silently.
Current Gaps
Production Environment
Production is not yet serving traffic — all customer traffic runs on Railway staging. AWS is further along than "not started," though: Terraform for the preprod root module has been applied (VPC/networking, RDS, S3, Secrets Manager, KMS, ECS cluster + service definitions), and the org-level bootstrap and control-tower global modules are applied too. identity-center and aft (account factory) are scaffolded in Terraform but not yet applied. See Release Management for the versioning/rollback design needed before AWS can safely take production traffic, and AWS Implementation for the fuller implementation tracker.
Services deployed vs. dormant
The blitz monorepo has 22 directories under src/apps/. 12 backend services are deployed to Railway staging today (11 with their own src/apps/ directory, plus bapiproxy, which shares excelrw's directory and builds from a second Dockerfile), plus 2 frontend services (blitz-ui, blitz-mgmtui):
| Deployed backend (12) | Deployed frontend (2) |
|---|---|
blitz-api, blitz-ws, blitz-apimgmt, blitz-agents, blitz-excelrw, blitz-bapiproxy, blitz-emailprocessor, blitz-wfw, blitz-wfwpdf, blitz-recon, blitz-remotecontrol, blitz-classicml | blitz-ui, blitz-mgmtui |
11 src/apps/ directories are genuinely dormant — no compose entry, no build workflow, never containerized:
| Dormant | Status |
|---|---|
email, events, fs, jsontransformer | Standalone Elysia HTTP services; buildable but not wired into any Dockerfile or CI workflow |
mcp, pdfwriter, queue, rulesengine | Same — buildable, not deployed |
scriptrunner, templaterenderer | Same — buildable, not deployed |
desktop | Different category entirely — an Electrobun native desktop app, not a server; not part of this deployment question |
Which of these come to production at AWS launch — if any — is an open decision. The AWS ECS Terraform (aws/modules/ecs/services.tf) currently declares only 10 backend services, missing blitz-apimgmt and blitz-bapiproxy (both were added to Railway after that module was written) — porting those two is a prerequisite, tracked in Release Management § Three-tier environment model, not a scope decision.
Ollama — live dependency, not yet an AWS decision
blitz-agents genuinely depends on Ollama today — src/libs/agentsbase/src/models/modelConfig.ts imports ChatOllama and configures 7 Ollama-backed model entries alongside OpenAI and Gemini. This is real, current code, not a stale planning note. Whether AWS production replaces these with Bedrock, an external API, or self-hosts Ollama (e.g. on ECS with GPU support) is unresolved and needs a decision before an AWS agents deployment can be considered feature-complete.
RabbitMQ — resolved, no longer a blocker
RabbitMQ is fully removed. Per the fin-infra CLAUDE.md: "RabbitMQ removed — Temporal-only... RABBITMQ_* are dead since the Temporal-only migration... removed from all backend services on 2026-07-10." All async workflows are Temporal-managed. The Streams-vs-AMQP Amazon MQ compatibility question this page used to raise no longer applies — there is no RabbitMQ dependency left to migrate.
IaC tooling for AWS — decided
Terraform (HCL), decided 2026-06-04. Not pending — aws/ already holds ~3,600 lines of applied HCL across 80 files. See AWS Implementation for the architecture doc.
Container registry — decided
GHCR, no ECR migration. Stated explicitly in the fin-infra CLAUDE.md ("Registry: GHCR (no ECR migration)"), and confirmed in the applied Terraform: ECS task definitions pull from GHCR via repositoryCredentials (aws/modules/ecs/services.tf:130), not ECR. Not an open decision.
Zoho SSO for AWS — scaffolded, blocked on a manual step
aws/global/identity-center/ has real Terraform (SAML federation with Zoho as the external IdP) but is not yet applied. Its own main.tf documents why: IAM Identity Center must be manually enabled in the AWS console first — a one-time step Terraform cannot perform, consistent with this org's IaC-only policy exception for first-time account setup. The Zoho SAML metadata URL (from Zoho Directory → Applications) is also a manual input, not currently plumbed through as a variable default. Needed before AWS Phase 1 (foundation) can be considered complete.
jobs service — does not exist; remove from tracking
No src/apps/jobs directory exists in blitz, and no reference to a jobs service appears in any Dockerfile, compose file, or Railway/AWS IaC. This was tracked as "may overlap with queue, needs review" — there is nothing to review; either it was never built or was already removed. Dropped from the gap list below.
Hyderabad (ap-south-2) as DR target — no work started
No reference to ap-south-2 or a second region exists anywhere in aws/. This remains a genuinely deferred, post-launch idea with zero implementation — correctly described as low-priority, but worth being explicit that nothing (not even scaffolding) exists yet, in contrast to the identity-center and AWS-preprod items above which do have real Terraform behind them.
Open Decisions
| # | Item | Status |
|---|---|---|
| 1 | Ollama on AWS — self-host vs. Bedrock vs. external API | Pending — live dependency in blitz-agents today |
| 2 | Service scope for AWS — which of the 11 dormant src/apps/ services (if any) go live | Pending |
| 3 | Zoho SSO / IAM Identity Center — manual console enablement + SAML metadata wiring | Pending, blocks AWS Phase 1 completion |
| 4 | AWS production Terraform parity with preprod (rds_autostop, elasticache modules missing) | Pending — see Release Management |
| 5 | blitz-apimgmt / blitz-bapiproxy missing from AWS ECS Terraform | Pending — see Release Management |
| 6 | Release versioning, tagging, and rollback design | Drafted — see Release Management (not yet implemented) |
| 7 | Hyderabad (ap-south-2) as DR target | Deferred post-launch; no work started |
Resolved since the last revision of this page and removed from the list: RabbitMQ Streams/Amazon MQ compatibility (RabbitMQ fully removed), IaC tooling choice (Terraform, applied), container registry choice (GHCR, confirmed in applied IaC), and the jobs service question (service doesn't exist).
AWS Migration Phases
See Infrastructure — AWS Migration for the full phase plan, and AWS Implementation for the detailed tracker.
| Phase | Scope | Status |
|---|---|---|
| 1 — Foundation | VPC, RDS, S3, Secrets Manager, IAM Identity Center | Partially applied — VPC/RDS/S3/Secrets Manager/KMS live in preprod; org-level bootstrap + control-tower applied; Identity Center scaffolded, not applied (blocked on manual console step) |
| 2 — Data migration | Postgres + RustFS → S3 | Not started |
| 3 — Compute | ECS Fargate + ALB | Applied in preprod — cluster, ALB, and 10 of 12 backend service definitions live; production root module exists but is thinner than preprod (missing rds_autostop, elasticache) |
| 4 — Messaging | ElastiCache (Valkey), Temporal | Not started; the RabbitMQ blocker that used to gate this phase no longer applies — RabbitMQ was removed platform-wide |
| 5 — Cutover | DNS, Railway decommission | Not started |
| 6 — Observability | CloudWatch, X-Ray, alerting | Not started |
| 7 — Security hardening | WAF, GuardDuty, KMS | Partially applied — WAF and KMS modules exist in preprod; GuardDuty not yet configured |
This page tracks decisions and scope, not deploy mechanics
For how releases get versioned, tagged, and rolled back once services move to AWS ECS — including the three-tier Railway/AWS-preprod/AWS-production environment model — see Release Management.