utils
config
env -> overwrite -> secret file -> overwrite -> initial config -> overwrite -> default config
procedure
-> require
const { Framework } = require("backend-core");
-> configure settings
let fw = new Framework(settings);
-> further manual setup
fw.scheduleJob();
fw.listen();
-> assign tasks for each section
fw.perform("pre-process" | "process" | "post-process" | "pre-terminate",()=>{})
-> start
fw.run()
running sequence
-> sys - initialization
-> user -> perform["pre-process"]
-> sys - serveStatic - schedule
-> user -> perform["process"]
-> sys - handle404
-> user -> perform["post-process"]
-> sys - listenOnPort
-> sys - socket
-> user -> perform["pre-terminate"] (only run once before app terminates)