-
Notifications
You must be signed in to change notification settings - Fork 4
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
As a developer, I want to share code between projects #211
Comments
I'm trying to figure out the best way to structure our monorepo. I'll document my thought process in this issue. Here's a snapshot of my current reflections on the subject. First of all, I think I'd rename a couple of things:
Monorepo structure guidelinesThere are 3 main packages categories, some of which are subdivided into sub-categories.
Here's what this could look like. Each leaf represents a package.
Packages may be imported via the prefix |
I agree with most of the renames, they make sense. Isn't "jobs"'s name conflicting/confusing with the actual jobs'? This service would have to also manage subscriptions and findings, it's the whole workflow. I can't say that I have a much better name at hand, hence why it is currently named flow manager, which I agree is not the best either. I still think jobs is too precise though and it should be named from a step further. We could name it I agree though that splitting the FM's service could be beneficial: easier scaling, less unnecessary scaling of lightly used parts of the code, smaller code base in service, splitting of concerns, etc. And there is also kind of a natural split in the logic already. It would have to be properly thought out, but it could be beneficial. Do you see another queue between the API and the workflow split services? Would you wait until it is an issue, or would you tackle the potential problem right away? We could rethink the architecture as needed when we need to scale the FM? What do you think? |
My vision was "everything related to jobs", including subscriptions and such. Maybe "job_manager"? I'm not fond of suffixing with "_api", since those are all technically all APIs.
I'd tackle this problem when we cross that bridge! |
We could benefit from setting up Yarn Workspaces.
There are other solutions such as Nx, but I believe Yarn would suit our needs better. It's a bit more lightweight.
Ref.: https://yarnpkg.com/features/workspaces
The text was updated successfully, but these errors were encountered: