Coder Social home page Coder Social logo

Comments (5)

jonnor avatar jonnor commented on May 12, 2024

A major problem with option 2) is that is requires changes to the Participant code, making it impossible to use existing/foreign participants. This would limit use to systems where one has complete control over each node. And make nodes participate in multiple networks/system very difficult.
So the way forward seems to be the bindings approach.
Note that we might want to have minimal support for participants self-initializing with possibly matching queues, but this will then be secondary. Major reason for this right now is allowing use on Heroku/AMQP without needing Coordinator to set up communication...

For MQTT and similar systems where the Broker cannot provide this functionality, a helper will be used by the Coordinator to perform this role. Probably hidden behind the transport.MessageBroker interface.

from msgflo.

jonnor avatar jonnor commented on May 12, 2024

Another problem is consoliating the need for various type of communication stategies. For instance in http://github.com/jonnor/imgflo-server we want round-robin between API frontend and the workers, but the result from worker should be communicated back to the API frontend which made the processing request.
The back-comm can be done using either a reply-to/peer-based model, or pub-sub.

Current thinking is to make edges be pub-sub by default (currently its transport dependent), and let a special router component implement round-robin. In AMQP (and other transports with neccesary capabilities) this would not actually be code in the coordinator, but instead just configure the broker suitably. On MQTT etc it will be implemented using a helper in the coordinator.
ACK/NACK would the be optional??

from msgflo.

jonnor avatar jonnor commented on May 12, 2024

All transports are now pub-sub by default. Need to still develop a msgflo/RoundRobin type component/participant

from msgflo.

jonnor avatar jonnor commented on May 12, 2024

RoundRobin now exists since 1+week

from msgflo.

jonnor avatar jonnor commented on May 12, 2024

Inside one role on AMQP, round-robin is the default since 2016. One can use msgflo/PubSub pseudo-component in order for all participant of a single-role to all get the message. Example usage in imgflo-server

from msgflo.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.