our error handling solutions are still premature. there are certain errors which i would want to catch and send to the void, certain ones i would want to propagate up the error call stack, etc.
ideally, i only want fatal errors to result from human error, such as passing a weird argument, etc. anything machine related should not be fatal, and should be delt with by the program in an organized fashion.
for example, if we implement websockets, we would want to keep our current API based solution, and have an error handling to catch API request issues with the websocket, and to fallback to the API instead.
i want to add more redundancy to certain aspects of ketchupbot. i've said for a while now that i believe for ketchupbot to be mission critical to the Galaxypedia, we NEED it, basically. there should never be a situation where a non-human error results in a crash.
Quoted from the roadmap:
my entire kinda reason for this rewrite was that i wanted to make ketchupbot a lot more robust, and i mean a LOT more. ive gone as far as to enable strict linting options, enforce a naming convention, etc. to ensure that things can NEVER go wrong, and if something does go wrong, it is reported but will not bring everything down with it. im going to develop this rewrite assuming everything can go wrong, and expecting everything to go wrong. so yeah, do note that my first priority in this rewrite is making sure things are robust, everything else is secondary.
going into why i want it to be this robust--even though docker's auto restart is pretty sufficient--i believe that ketchupbot is very mission critical. a while back i was in denial. i didnt want to think that us staff had to rely on a bot to keep our site up to date, it felt embarassing. but as ive grown, ive realized that our shame doesnt matter. our job is to keep this wiki afloat, and up to date. if a bot is our crutch, so be it, but we might as well make sure that our crutch doesn't break on us. ketchupbot is critical to us and the community. we cannot afford for it to break. not now, not ever.
Quoted from the discord:
Quoted from the roadmap: