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

Separate Archimedes as an Etna service #223

Open
graft opened this issue Jul 15, 2018 · 0 comments
Open

Separate Archimedes as an Etna service #223

graft opened this issue Jul 15, 2018 · 0 comments

Comments

@graft
Copy link
Contributor

graft commented Jul 15, 2018

Currently, Timur runs "manifest" scripts and returns consignments using a /consignment endpoint. This endpoint already neatly encapsulates all of the manifest functionality - it accepts a script argument as a text block, parses it and runs through the code, making the necessary calls to Magma, Rtemis or Pythia as appropriate.

This functionality should be separated into its own service (Archimedes), which would provide a standalone manifest-crunching service separate from Timur. This would have a few advantages:

  1. Other services can store manifest script blocks and run them via Archimedes without having to interact with Timur
  2. Archimedes can expand to deal with its own concerns (e.g., running delayed jobs, caching, etc.) without interfering with Timur development.

There is a modicum of coupling involved - mostly in the form of script code obsolescence and syntax highlighting - but this coupling isn't much worse than the current situation.

To make this change we:

  1. Copy the repo to mountetna/archimedes
  2. Delete code not relating to archimedes (essentially, everything not in lib/models/archimedes and the endpoint line in server.rb
  3. Create a deploy process for archimedes (putting Rtemis and Pythia on the same machine)
  4. Delete archimedes code from Timur.
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

1 participant