VERDUN

MVP — Scope, Estimate & Delivery Plan

250-camera ingestion + DeepAlert detection · Prepared for Verdun AI · 2026-06-27 · draft for discussion
prepared by

01 Objective

Scale Verdun's existing video-monitoring pipeline from its current single-camera footprint to a reliable ~250-camera deployment, and integrate DeepAlert as the AI-detection provider. A scoped MVP — get to production at 250 cameras fast, and leave the heavier optimization for the eventual ~1,000-camera target.

We extend what's already working. The single-camera GStreamer worker, the incident-intelligence pipeline (ROI → keyframe → LLM), the API backend, SQS, SSE and S3 are reused as-is. Two things are net-new — a DeepAlert adapter and fleet provisioning — plus hardening to run 250 cameras unattended.

02 Scope — three workstreams

Workstream B · Phase 1

DeepAlert detection adapter

  • Submit-based: POST motion clip to /v1.0/analytics, map response into your detection contract
  • Register DeepAlert as primary detector — only the detection stage is replaced; ROI/keyframe/LLM run unchanged
  • Stable client-minted job-id → idempotent dedup
Workstream A · Phase 2

Fleet provisioning & registry

  • DB-driven camera registry — onboard a camera with no deploy
  • One-container-per-camera on ECS; secure per-camera credential injection
  • Per-brand integrations — 4–5 major brands (Hanwha already done by Verdun)
Workstream C · Phase 3

Fleet hardening

  • Exponential backoff on RTSP reconnect
  • Per-camera health reporting (ONVIF connect / no-motion signals surfaced)
  • Graceful restart + clean teardown; self-recovery without taking down neighbours
Reused as-is — no work
  • Single-camera worker (RTSP · KVS · ONVIF motion · clip fetch)
  • Incident-intelligence (ROI → keyframe → LLM) + data contracts
  • API backend · SQS · SSE · shared S3
Out of scope — deferred to scale-up (post-250)
  • Multi-camera-per-process pooling · per-tenant KMS isolation
  • Latency/SLO optimization (keep the ~10s settle) · differentiated retention
  • Auth hardening · talk-down / two-way audio

03 Phasing & milestones

P1 · DeepAlert
P2 · Fleet & Registry
P3 · Hardening
Prod-readiness
W1W2W3W4W5W6
◆ M1 — DeepAlert detection end-to-end on a single camera
◆ M2 — Cameras onboarded via registry; fleet one-container-per-camera
◆ M3 — Unattended 250-camera operation, self-recovery + health

Phase 1 proves the new detection path on your existing single-camera setup; Phases 2–3 scale it to the fleet. Who-works-when detail in the companion Resource & Sequencing Plan.

04 Effort & engagement

Phase 1
~10 pd · fixed-scope
Whole MVP
~44 pd · band 36–55
Calendar
~6 weeks
Team
4 LIT + Verdun review
WorkstreamScopeEffort (pd)
B · Phase 1DeepAlert adapter (+ project ramp)~10
A · Phase 2Fleet provisioning + registry + per-brand~16
C · Phase 3Hardening (MVP-grade) + cross-cutting~18
Whole MVPnominal · band 36–55 until read-access~44

Engagement model: Phase 1 as a fixed-scope first milestone (self-contained, low-ambiguity). Phases 2–3 on T&M with a per-phase cap set after a short read-access pass. Effort is in person-days; commercial terms (rate, schedule) provided separately. Hanwha integration is already Verdun's; interpretation (ROI→keyframe→LLM) stays with Verdun and is not estimated.

05 Proof — a working prototype, not a slide

We've already built a runnable prototype that mirrors this pipeline in your stack (Python / FastAPI, one worker per camera): real 4-brand ONVIF parsing and the DeepAlert submit-adapter, idempotent job-id dedup, retry with a circuit-breaker fallback into a DLQ, fleet orchestration, and a live operator console — 59 tests green, types clean, distributed tracing end-to-end. The hard parts of this estimate already work, which is what lets us quote Phase 1 tightly. A short narrated demo accompanies this document.

06 Ways of working

07 To finalize — what firms the number

  • 1Read-first repo access — validate the worker + detector interface we extend
  • 2DeepAlert API docs + sandbox — confirms Workstream B
  • 3First-site camera mix — Hanwha vs generic; ONVIF push; edge pre-roll
  • 4Expected event volume /camera/day — sizes DeepAlert calls + throughput
  • 5Non-prod AWS account + scoped IAM
  • 6Detection fallback — DeepAlert sole, or keep an internal fallback?

Once these are confirmed, we lock Phase 1 and start. References (US/UK customers) and NDA in parallel.