-
Notifications
You must be signed in to change notification settings - Fork 2
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
Revised architecture with an Elixir-based test agent manager #42
Comments
I was hoping for a wild @lpil to appear! |
I think this would be a fine use case for Elixir. Streaming little bits of data about through persistent connections is the name of the game. request I think it'd be easier to do this stateful programming in Elixir than Node, for sure. |
Actually is there any reason why the result data needs to go via the app? The VPS could host a little server streaming the data over websockets and the client can connect directly to it. Less work for the persistent server and no more requirement to route the results data across the cluster to the node where the client socket is held, which will make things simpler. |
Yep, I think this would be an awesome idea to explore/spike. The architecture as it is, was purposefully extracted into single concerns so that we could converge on solution that involved less dependencies in the future. Comments inline:
My initial thinking was that the orchestration of the test runs would be deferred to cloud infrastructure. The current proposed interface between the application and test agent pool (ECS) is a naive call using the AWS SDK to spawn a container. However, it'd be more manageable if the interface between the two mechanisms would sit closer together.
That's a big win as far as I'm concerned. Internalising this communication would be ideal 👍 I'm going to go away and do a bit more of an investigation into Elixir, but at this early stage of the project, I'm not concerned with changing the underlying interfaces frequently and dramatically - i.e I'm up for considering anything that people deem would be a better fit. Greenfields, people! |
More of a place for conversation, rather than a serious suggestion:
How would you like an architecture with a manager in the middle?
Manager could be responsible for
Given this is mostly orchestration, processing and data streaming, it could be quite good to build this in Elixir.
The benefits I see:
Drawback is obviously that none of us really know much Elixir and you also need to worry about running the Elixir system.
Thoughts?
The text was updated successfully, but these errors were encountered: