@startuml actor User participant "analytics_manager\n(balancer)" as Manager participant "ANL Node\n(supervisor)" as Node participant "Worker 1\n(camera 1)" as W1 participant "Worker 2\n(camera 2)" as W2 database MongoDB User -> Manager: Enable fire_analytics for camera Manager -> MongoDB: Find available ANL node Manager -> Node: Assign camera to node Node -> W1: spawn(mp.Process) activate W1 W1 -> W1: Pull video stream W1 -> W1: Process frames W1 -> Manager: Send events via WebSocket deactivate W1 Note over Node: Supervisor создает отдельный\nmultiprocessing воркер\nдля каждой камеры Node -> Node: Check workers health Node -> W2: spawn(mp.Process) for camera 2 activate W2 W2 -> W2: Process video stream deactivate W2 @enduml