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

[EPIC] Moving the API off Meteor #4996

Closed
45 tasks done
aldeed opened this issue Feb 18, 2019 · 10 comments
Closed
45 tasks done

[EPIC] Moving the API off Meteor #4996

aldeed opened this issue Feb 18, 2019 · 10 comments
Assignees
Labels
epic For issues that exist only to track progress on a list of other issues in one place
Projects

Comments

@aldeed
Copy link
Contributor

aldeed commented Feb 18, 2019

We have been slowly removing Meteor dependencies from Reaction API server code. We are now close enough to being done on the server side, that we can create this Epic to track the remaining work.

To be clear, the goal here is to get the API server running as a non-Meteor Node app. This means all GraphQL code, all events, all background jobs, all relevant startup code. It does not include necessarily all Meteor methods or publications, nor does it include operator UI client code. There will remain a Meteor app to run those things for some time yet, but it will be needed only for running the operator UI. The operator UI will eventually not need Meteor, but there is much work to be done there and no timeline yet.

Here is a preliminary list of the work that this Epic entails:

This will be complete when the pure Node server, currently runnable for testing with npm run devserver, correctly handles all GraphQL requests, generates app events, creates and works background jobs, and sends emails.

Note: Long term, there will be more modular and scalable solutions for background jobs and emails, but there is no need to lump those larger projects in with this one. Porting the existing core plugins should be straightforward for now.

@aldeed aldeed added the epic For issues that exist only to track progress on a list of other issues in one place label Feb 18, 2019
@aldeed aldeed changed the title Moving the API off Meteor [EPIC] Moving the API off Meteor Feb 18, 2019
@aldeed aldeed self-assigned this Feb 18, 2019
@zenweasel
Copy link
Collaborator

Epic in every sense of the word

@pmn4
Copy link
Collaborator

pmn4 commented Mar 28, 2019

This is fantastic, @aldeed. Godspeed!

@dhonig
Copy link
Collaborator

dhonig commented Mar 28, 2019

This is very exciting work. Re: JobCollection library....Is there any interest in moving this to something like Agenda or Bull? https://github.com/agenda/agenda I've developed a love and hate relationship with job-collection over the course of a few projects.....

@aldeed
Copy link
Contributor Author

aldeed commented Mar 28, 2019

@dhonig Long term it will definitely move to a different tool for queuing and scheduled jobs. It will most likely be a separate microservice, so essentially you could use any library, tool, or third-party provider you want as long as you tell Reaction how to add, monitor, and work jobs.

But that is long term and isn't on the near-term roadmap, so for this epic the goal is really just to keep the existing system working without any changes except removing Meteor dependencies.

@janus-reith
Copy link
Collaborator

Has Account management been left out here intentionally?

@aldeed
Copy link
Contributor Author

aldeed commented Aug 27, 2019

@janus-reith Account management (identity provider features) will remain on Meteor, as will the Reaction Admin UI for now. Accounts are still heavily dependent on Meteor accounts packages. The plan is that eventually IDP will split to its own Meteor app, and then will be abstracted so that you can use something like Keycloak or third-party like auth0.

@janus-reith
Copy link
Collaborator

Ok, makes sense.
I was wondering initially how the API would deal with account data and permissions then, but realized that this is is how it works already using the the auth token.
Maybe this could allow for a simple transition: https://github.com/accounts-js/accounts

@aldeed aldeed added this to In progress in 3.0.0 Oct 25, 2019
@aldeed
Copy link
Contributor Author

aldeed commented Oct 28, 2019

Having now a release-3.0.0 branch, I'm closing this epic as done. There is some remaining work fixing bugs and getting everything working in that branch, which is now being tracked in a public GH project: https://github.com/orgs/reactioncommerce/projects/4

@aldeed aldeed closed this as completed Oct 28, 2019
3.0.0 automation moved this from In progress to Done Oct 28, 2019
@vajda-media
Copy link

vajda-media commented Nov 10, 2020

Sorry to ask here after closed this thread. Just wanted to know, what was the benefit of removing one of the best JS Frameworks and go on simple nodeJS? Was also the possiblity kept in focus to take ReactJS + Meteor combination?

@focusaurus
Copy link
Contributor

@vajda-media There were many reasons but one key pain point was crushingly slow start/restart time for the meteor server making back end development extremely hindered. Having a GraphQL API was also a key component of our "headless" product direction and meteor being UI/back-end integrated was contrary to that.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
epic For issues that exist only to track progress on a list of other issues in one place
Projects
No open projects
3.0.0
  
Done
Development

No branches or pull requests

7 participants