You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(dc_bridge): extract the Uploader into its own dc_uploader process
Closes#446
The Uploader used to run on a worker thread inside dc_bridge, configured by
ROS parameters and linking the AWS SDK into the Bridge's own process. It is
now dc_uploader, a standalone executable configured entirely by DC_UPLOADER_*
environment variables, with no ROS dependency. The Bridge keeps only the
Files subscription and the durable intent-queue write side; dc_uploader reads
that queue, uploads, and emits the resulting status Records itself.
IntentQueue gains rescan() so a reader-only instance in a separate process can
discover intents a different process enqueued — the queue's on-disk format
was already crash-atomic and safe for this, but each process's in-memory
scheduling state previously only ever loaded what was on disk at construction
time. dc_bringup.launch.py starts dc_uploader automatically alongside
dc_bridge (same ExecuteProcess pattern as dc_mcap_writer) whenever a
`receives: files` Destination is configured, translating that Destination
plus files.*/uploader.data_dir into dc_uploader's environment — deployments
keep the same params file.
See docs/adr/0014-uploader-runs-as-its-own-process.md for the full decision.
Verified with a full tools/e2e/scripts/build.sh run (colcon build + test):
656 tests, 0 failures, and a live smoke test of dc_uploader against RustFS.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VXhyy2nX5JokxtTnGdwzjy
Signed-off-by: David Bensoussan <d.bensoussan@proton.me>
0 commit comments