Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(): message passing between domain lines #45

Open
scott-wyatt opened this issue Oct 14, 2019 · 2 comments
Open

feat(): message passing between domain lines #45

scott-wyatt opened this issue Oct 14, 2019 · 2 comments

Comments

@scott-wyatt
Copy link
Contributor

scott-wyatt commented Oct 14, 2019

Languages like Erlang/Elixir are super solid because of the way they use mailboxes (among other things). Fabrix is already just extending the base "Emitter" class to give it most of its functionality. There's something to be said about giving each spool and each thread/spool it's own mailbox and in turn it's own address for the spool and the threads that it's using. This will helps fabrix distribute better and opens opportunity for a new class of spools, ones that allow connections between different instances of the core.

Example:

<App Address:uuid> -> <Spool Address:uuid> -> <Method Thread Address:uuid>
<App Address:uuid> -> <Spool Address:uuid> -> <Method Thread Address:uuid>
<App Address:uuid> -> <Spool Address:uuid> -> <Method Thread Address:uuid>

doing app.spools or app.models could resolve where those things actually live and mailbox the requests etc,

Many of these types of small enhancements came up while constructing spool-broadcast, and honestly, it makes sense for a fabrix app to not have to reside on a single machine as a micro service, when it's already so close to being distributed with some slight but significant enhancements.

Using proxies, generators, and async/await, we could also keep everything compatible with the existing ecosystem, but also get the huge benefit of fully distributed applications (that still have perks like using other frameworks inside fabrix).

This could be a v2.0 or a v1.7 feature.

scott-wyatt added a commit that referenced this issue Oct 14, 2019
@jaumard
Copy link
Member

jaumard commented Oct 23, 2019

Very curious and existed about this :) I don't know shit about distributed system, but one question that popup in my mind is how spool will start ? after that I can imagine with some pub sub they can send/receive message and interact with each others.

But when fabrix app is started how spool will be started (and monitored) ?

@scott-wyatt
Copy link
Contributor Author

scott-wyatt commented Oct 23, 2019 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants