FEAT: Pilote Akka.Streams — pipeline snapshot d'une caméra (backpressure + supervision de flux) #70
Labels
No labels
bug
chore
design
dx:ci
dx:database
dx:dotnet
dx:infra
dx:security
dx:tests
dx:ui
etape-1
etape-2
etape-3
etape-4
etape-5
etape-6
etape-7
feature
priority-high
priority-low
priority-medium
security
spec
tech-debt
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
nonobis/Heimdall#70
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Contexte
Proposition (issue de l'évaluation Akka.NET, ticket TECH lié) : valider Akka.Streams sur le pipeline snapshot existant, en pilote sur une seule caméra, avant toute migration globale. L'équivalent maison actuel (sémaphore 4, channel borné 100 DropOldest, boucle BackgroundService) est un équivalent minimal de Source/Flow/Sink avec backpressure natif, Buffer + OverflowStrategy, RestartingDecider et Throttle.
Référence spec
Phase 15 (Agent Vidéo — capture + streaming) et Phase 16 (IA Pipeline). Ne modifie pas le comportement métier.
État actuel
CameraStreamService: FFmpeg MJPEG par caméra, sémaphore 4,Channel<Snapshot>borné 100DropOldest, compteurDroppedSnapshotCount.SnapshotPipelineService: BackgroundService qui consomme le channel →FrameAnalyzerService.AnalyzeFrameAsync→SceneStateTracker.UpdateFromAnalysis+ détection de mouvement.Comportement attendu (pilote, 1 caméra)
Source(FFmpeg MJPEG) → Flow(analyse) → Sink(SceneStateTracker)matérialisé enIAsyncEnumerable.RestartingDecider: redémarrage propre du graphe si l'analyse crash, sans perte de l'état de scène.Critères d'acceptation
Fichiers concernés
src/Heimdall.Agent/Services/CameraStreamService.cssrc/Heimdall.Agent/Services/SnapshotPipelineService.cssrc/Heimdall.Agent/Heimdall.Agent.csproj(PackageReference Akka.Streams 1.5.70, Akka.Hosting 1.5.70 — Apache-2.0, net6.0 → OK net10)Liens
Abandonné — décision utilisateur : pas d'intégration Akka.NET (sans objet à ce stade).