Disc - Simple Disque-powered Ruby Jobs
Background jobs - the pattern in which a given piece of code and it’s input arguments are executed by a different process outside of a web application serving an HTTP request - are widely used in web application development due to the user-facing performance gains.
In Ruby, several solutions have been around for quite some time, most of these use Redis as a temporary datastore and as a way for the web server process to communicate with the background worker processes, with Sidekiq beign perhaps the most popular of them all.
In 2015, the creator of Redis, Salvatore Sanfilippo AKA Antirez (GitHub) noticed just how often people were using Redis to solve this problem and decided to create a new system that would specifically cater to it, he called it Disque and announced it in a blog post.
With Disque in the scene, there was an opportunity to write background job implementations that wouldn’t need to adapt Redis to their use case, this reduced disconnect between the base system and the domain problem means that implementations using Disque can get the job done with much less code and hassle.
Thus, Disc was born. It is currently in production in at least two systems with no particular problems, but it’s fair to warn potential users that both Disc and Disque are fairly new projects and merit special attention if you plan to use them. If you are looking for options you should check out Havanna, another Ruby background job implementation similarly powered by Disque.
Disc is released under a MIT license, you can see the code and the official documentation in it’s GitHub repository.