Demo mode 0 creds Seeded state, no paid cloud services
Async jobs 7 pg-boss job contracts mapped
Contract surfaces 3 Events, webhooks, and AI runs
Deploy checks 4 Unit, typecheck, build, e2e
Boundary Hosted demo Local/prod path Data store Seeded TypeScript state + cookie replay Postgres, pgvector, Drizzle migrations, backups Jobs Static contract simulator pg-boss workers with retry, DLQ, and idempotency Events Kafka/Redpanda-shaped envelopes on screen Redpanda or MSK topics with schema compatibility checks Search Deterministic in-memory selectors OpenSearch lexical/vector hybrid retrieval Graph Relationship panel in knowledge route Neo4j or Postgres graph projection for investigations Observability Demo trace view in Watchtower OpenTelemetry exporter path to managed tracing
Hosted Demo trace view linked to AI runs, events, and webhook attempts Production OpenTelemetry exporter path for spans, logs, and metrics Review Approval status and policy gates stay visible beside cost and latency Serverless AWS path Edge entry Netlify or CloudFront routes React Router requests and keeps intake fast. Async queue SQS or EventBridge receives ticket lifecycle and AI action events. Workers Lambda runs triage, document extraction, retrieval, and webhook delivery. Persistence RDS Postgres keeps tickets, ai_runs, audit events, and pgvector knowledge chunks. Search OpenSearch indexes playbooks, tickets, uploaded documents, and AI run metadata. CI/CD and test gates Pull request TypeScript, unit tests, route smoke tests, schema diff check Preview deploy Seeded demo data, no paid credentials, deterministic session replay Release gate Playwright smoke suite, AI fixture regression pack, accessibility snapshot Production deploy Migrations first, workers after schema, canary webhook endpoints IaC and container boundary Terraform owns VPC, RDS, queues/topics, OpenSearch, secrets, IAM, alarms App deploy owns React Router bundle, worker image, env-specific feature flags Kubernetes option Run web, worker, and replay services as separate deployments with HPA Secrets Webhook HMAC keys rotate by version and are never exposed in payloads Data contracts make the demo reviewable. event ticket.lifecycle.v2 Service desk platform · version 2.1.0 · linked ticket tkt-wifi
ticketId: string required correlationId: string required priority: enum required riskFlags: string[] optionalevent ai.action.v1 AI Watchtower · version 1.4.0 · linked ticket tkt-cctv
aiRunId: string required promptVersion: string required confidence: number required approvalStatus: enum requiredwebhook webhook.delivery.v1 Integrations · version 1.0.0 · linked ticket tkt-invoice
eventId: string required timestamp: iso8601 required signature: hmac-sha256 required deliveryAttempt: number requiredReact Router app Kept as an explicit boundary so a reviewer can map demo behavior to production infrastructure. Postgres + pgvector Kept as an explicit boundary so a reviewer can map demo behavior to production infrastructure. Queue workers Kept as an explicit boundary so a reviewer can map demo behavior to production infrastructure. Events/webhooks Kept as an explicit boundary so a reviewer can map demo behavior to production infrastructure.