31 lines
1.3 KiB
Plaintext
31 lines
1.3 KiB
Plaintext
@startuml
|
||
participant Агент as agent
|
||
participant "MQTT Broker (raw\ntopic)" as mqtt1
|
||
participant "Edge Service" as edge
|
||
participant "MQTT\nBroker (processed\ntopic)" as mqtt2
|
||
participant "Hub Service" as hub
|
||
participant "Redis" as redis
|
||
participant "Store API" as store
|
||
participant "PostgreSQL" as db
|
||
participant "MapView Client" as mapview
|
||
|
||
agent -> mqtt1 : Надіслати\nсиру\nтелеметрію
|
||
mqtt1 -> edge : Передати\nсире\nповідомлення
|
||
edge -> edge : Перевірити\nAgentData
|
||
edge -> edge : Обробити\nтелеметрію
|
||
edge -> mqtt2 : Надіслати\nоброблені дані
|
||
mqtt2 -> hub : Передати\nоброблене\nповідомлення
|
||
hub -> hub : Перевірити\nProcessedAgentData
|
||
hub -> redis : LPUSH у буфер
|
||
hub -> redis : LPOP елемента\nbatch
|
||
redis -> hub : Повернути\nелемент
|
||
hub -> store : POST batch
|
||
store -> db : Додати записи
|
||
db --> store : Повернути\nстворені записи
|
||
store -> mapview : Надіслати через WebSocket
|
||
mapview -> mapview : Сортувати за\ntimestamp
|
||
mapview -> mapview : Оновити маркер\nтранспорту
|
||
mapview -> mapview : Додати маркер\npothole/bump
|
||
store --> hub : Успішна відповідь
|
||
@enduml
|