-
Notifications
You must be signed in to change notification settings - Fork 66
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
enhance(arbiter-engine): remove use of Artemis in favor of our own agent design #789
Conversation
I think I can now filter out `to` at the messager collector level and assign a `from` at the messager executor level. This means agents just need to produce a `to` and `data` and not have to check if the `to` is correct on receipt
40a773b
to
1ee8c75
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm excited for this, I think we should merge it in tomorrow after standup.
My only question
- What is the difference/relationship between running specific states (
run_state
) and the transition function? Is it primarily to allow for the testing and the development? When we run the sim say over a bunch of "transitions" will we need to be sure to await the transition after running a state? What is the flow you are thinking here?
This by no means has to be the correct way to do this, but it is a working way to do things. Let's break it down for a sec and think about the Rust async model.
I think this could probably be simplified, but it might not matter much since on top of this we can abstract away the user ever having to call these themselves by having a manager manage worlds (or something). |
Give an overview of the tasks completed
This PR started off as me just wanting to improve the
Messager
. Midway through, we found that dealing with Artemis was going to be quite a headache since the repo is seemingly inactive. So this PR became a lot more work. Nonetheless, we are getting close to a working different abstraction, but this does not pass completely yet.arbiter-core
reflect the additional feature added to theEventLogger
that enables a streaming mode.I added a decent amount of docs around
arbiter-engine
as to help understand the structure here.Link to issue(s) that this PR closes
to
field inMessager
to direct message instead of broadcasting #750World
andAgent
withMessager
by default #785Behavior
andStateMachine
traits #786Engine
struct implementation #787