<feed xmlns='http://www.w3.org/2005/Atom'>
<title>farside/instances.json, branch main</title>
<subtitle>Farside fork</subtitle>
<link rel='alternate' type='text/html' href='https://grim.freemyip.com/cgit/farside/'/>
<entry>
<title>Output available instances and fallback URL to redis</title>
<updated>2021-10-22T23:15:40+00:00</updated>
<author>
<name>Ben Busby</name>
<email>noreply+git@benbusby.com</email>
</author>
<published>2021-10-22T23:15:40+00:00</published>
<link rel='alternate' type='text/html' href='https://grim.freemyip.com/cgit/farside/commit/?id=4949ae22bb2fd1b81cdfbbe21468015fb229b553'/>
<id>4949ae22bb2fd1b81cdfbbe21468015fb229b553</id>
<content type='text'>
Once a list of available URLs has been determined for a particular
service, the list is written as "service -&gt; [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.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Once a list of available URLs has been determined for a particular
service, the list is written as "service -&gt; [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.
</pre>
</div>
</content>
</entry>
<entry>
<title>Validate status code for all service instances</title>
<updated>2021-10-22T03:15:58+00:00</updated>
<author>
<name>Ben Busby</name>
<email>noreply+git@benbusby.com</email>
</author>
<published>2021-10-22T03:15:58+00:00</published>
<link rel='alternate' type='text/html' href='https://grim.freemyip.com/cgit/farside/commit/?id=b0953f07779a4fc6fdfe650a872c4e39251db3ee'/>
<id>b0953f07779a4fc6fdfe650a872c4e39251db3ee</id>
<content type='text'>
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.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
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.
</pre>
</div>
</content>
</entry>
<entry>
<title>Initialize update script</title>
<updated>2021-10-21T23:07:43+00:00</updated>
<author>
<name>Ben Busby</name>
<email>noreply+git@benbusby.com</email>
</author>
<published>2021-10-21T23:07:43+00:00</published>
<link rel='alternate' type='text/html' href='https://grim.freemyip.com/cgit/farside/commit/?id=cf8dfc5a85a7d655fef36ce735472a16635d8b7a'/>
<id>cf8dfc5a85a7d655fef36ce735472a16635d8b7a</id>
<content type='text'>
My initial thought for this: create a simple redis db for storing key
value pairs of instance -&gt; 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
&lt;url&gt;/&lt;service&gt;/&lt;...&gt;), the app would pick a random value from the list
returned by redis.get('&lt;service&gt;') 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.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
My initial thought for this: create a simple redis db for storing key
value pairs of instance -&gt; 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
&lt;url&gt;/&lt;service&gt;/&lt;...&gt;), the app would pick a random value from the list
returned by redis.get('&lt;service&gt;') 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.
</pre>
</div>
</content>
</entry>
</feed>
