Skip to content

Networked message brokers#333

Draft
ehpor wants to merge 13 commits into
developfrom
feature/message_networking
Draft

Networked message brokers#333
ehpor wants to merge 13 commits into
developfrom
feature/message_networking

Conversation

@ehpor
Copy link
Copy Markdown
Collaborator

@ehpor ehpor commented May 30, 2025

Caution

This PR requires #331 and #342 to be merged before.

This PR adds a message broker that allows access to message brokers over the network. This allows other computers to talk to you using a consistent interface.

Todo:

  • Rename MessageBroker to LocalMessageBroker.
  • Separate out a MessageBroker interface.
  • Write a RemoteMessageBroker that connects to other RemoteMessageBroker objects via the network.
  • Write a DistributedMessageBroker class that distributes messages between a LocalMessageBroker and a RemoteMessageBroker depending on the prefix of the message topic.

@ehpor ehpor self-assigned this May 30, 2025
@ehpor ehpor added the enhancement New feature or request label May 30, 2025
@ehpor ehpor force-pushed the feature/message_networking branch 2 times, most recently from 0ce9429 to 2b98904 Compare June 12, 2025 06:33
@ehpor ehpor force-pushed the feature/message_networking branch from 2b98904 to cebd7eb Compare June 13, 2025 09:06
@a-sevin
Copy link
Copy Markdown
Collaborator

a-sevin commented Oct 17, 2025

Hi,
I spent a few dozen hours of my nights and weekends continuing the development work.
I have a proof of concept using a remote camera server that sends frames to the main testbed.
I need some time to validate the various test cases (such as services not started or crashed), but the first tests are successful.
I’ve pushed everything to the branch message_networking_v2.
I’m not sure whether I should create a new PR or push to this one.
DISTRIBUTED_MESSAGING.md was generated by Copilot, so it may contain errors... Now, I need some rest

@ehpor
Copy link
Copy Markdown
Collaborator Author

ehpor commented Nov 14, 2025

@a-sevin Amazing! I'm very grateful for your work on this.

One concern that I hadn't solved yet was that we don't want to send every message to all computers. Cameras generate a lot of bandwidth, and we don't want to send all that data to a computer just for it to be ignored since it's just handling flip mounts or something. We want to be selective.

Another thing that I ran into, that you seem to have spent a lot of time on, is service process management. My approach was gonna be to do all communication via the message broker, and have it serve as the only communication line between the two computers. You're still using some ZeroMQ there?

That being said, this is a great work!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants