How Servable server orchestrates a service?
Schema​
Servable takes the separation of concerns to the extreme by allowing every protocol to define a schema it needs to run. This schema has two main entries:
- target: how does the protocol change the targetted model's schema, ie, which field to add
- managed: the models the protocol needs to run
Final schema​
At runtime the Servable server computes the total schema for the whole app based on the multiple protocols that are called.
Lifecycle​
When the server is launched, the servable-engine performs the following tasks:
- Launches an Express app
- Computes the target database schema by aggregating the custom app tables and the protocols applied to those tables
- Checks if a schema migration is necessary. It migrates the schema or not accordingly
- Binds every protocol to the events triggered by the tables that use them
- Exposes every protocol custom function
- Registers jobs