parse-community / parse-community/parse-server
Make SchemaController and SchemaCache stateless
- Dominant language
- JavaScript
- Stars
- 21.4k
- Forks
- 4.8k
- Avg merge
- 7h 45m
- Merged PRs (30d)
- 11
Description
New Feature / Enhancement Checklist
- I am not disclosing a vulnerability.
- I am not just asking a question.
- I have searched through existing issues.
Current Limitation
Currently Schema-controller, database-controller and schema cache is a singleton and it makes whole parse-server statefull
Feature / Enhancement Description
The concept is to make schema logic stateless and make possible to override in parse-configuration schema cache, so that it is possible to e.g cache it in Redis or another custom solution
Example Use Case
We are going to run multitenant parse server with cloud code. Due to limitations of Cloud code (which we have a lot in our application) we cannot just run multiple instances of parse-server in single node process. We are running single parse instance but we have overridden database adapter to choose appropriate mongo-url every call (we are using CLS to have consistent request objects). The same we have done with caches and thanks to this PR it is possible to apply this strategy to parse schema cache.
Alternatives / Workarounds
NA
3rd Party References
NONE
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reviewing the SchemaController, database-controller, and schema cache areas described in the issue, then inspect linked pull request #7951 for the work already underway. Done means the schema logic is stateless and the schema cache can be overridden through Parse configuration, including the described custom caching use case.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript, nodejs
- Domain
- backend, databases
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 20/100