summaryrefslogtreecommitdiff
path: root/instances.json
AgeCommit message (Collapse)Author
2021-10-22Output available instances and fallback URL to redisBen Busby
Once a list of available URLs has been determined for a particular service, the list is written as "service -> [list of instances]" to a local redis connection. These can then be used in the greater routing logic to pick a random instance from the list, or use a fallback instance if none are determined to be available.
2021-10-21Validate status code for all service instancesBen Busby
Updated to filter out all instances that either time out (I believe default timeout for HTTPoison is 5s) or return a non-200 status code.
2021-10-21Initialize update scriptBen Busby
My initial thought for this: create a simple redis db for storing key value pairs of instance -> list of live instances for each privacy front end (libreddit, bibliogram, etc). A script executed on a certain schedule would (in the background) check each instance to make sure it isn't down or unreasonably slow. If the instance is available, add it to a list of available instances in the db. When a user navigates to the revolver url (something like <url>/<service>/<...>), the app would pick a random value from the list returned by redis.get('<service>') and forward the user to that instance. As a side note, this could instead load the instances json from a remote source (like github or something) so that changes to instances don't need to involve a redeploy of the entire app.