Skip to content

Commit 3eb8bfc

Browse files
author
Michał Fąferek
committed
docs(mosaico_integration): clarify bridge SSE flow and link entity-discovery upstream issue
- Rewrite the module docstring architecture block as a sequential 4-step flow (SSE in, REST out, MCAP back, Arrow Flight to mosaicod). The old inline arrows mixed request directions on one line and were hard to follow. - Add a roadmap pointer in resolve_entity_for_download(): the HEAD-probe discovery is a pragmatic workaround for the fact that the gateway-wide /faults/stream SSE does not include SOVD entity context. Tracked in selfpatch/ros2_medkit#380; once that lands the function collapses to a single direct fetch.
1 parent 39ea527 commit 3eb8bfc

1 file changed

Lines changed: 9 additions & 2 deletions

File tree

demos/mosaico_integration/bridge/bridge.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,10 @@
33
snapshot bag into mosaicod via the mosaicolabs Python SDK.
44
55
Architecture:
6-
medkit gateway --(SSE)--> bridge --(REST)--> medkit gateway --(MCAP)--> bridge
7-
bridge --(Arrow Flight via mosaicolabs)--> mosaicod
6+
1. medkit gateway --[SSE: fault event]--> bridge
7+
2. bridge --[REST: GET snapshot]--> medkit gateway
8+
3. medkit gateway --[MCAP bag response]--> bridge
9+
4. bridge --[Arrow Flight]--> mosaicod
810
911
License-safe: this is a separate process talking Arrow Flight to an
1012
unmodified mosaicod docker image, per Mosaico's recommended pattern.
@@ -191,6 +193,11 @@ def resolve_entity_for_download(
191193
- We discover the right entity by listing all apps + components and
192194
asking each for the bulk-data/rosbags/{fault_code} until one returns 200.
193195
The list is small (~10 entities) so this is cheap.
196+
- This HEAD-probe discovery is a pragmatic workaround. The gateway-wide
197+
SSE fault stream does not surface SOVD entity context today; tracked
198+
in selfpatch/ros2_medkit#380 (either an x-medkit extension in the SSE
199+
payload or per-entity fault subscriptions). Once that lands, this
200+
function collapses to a single direct fetch.
194201
"""
195202
# Build candidate list: enumerate apps and components.
196203
candidates: list[tuple[str, str]] = []

0 commit comments

Comments
 (0)