Stop using Behaviour to define interfaces! Nilsimsa locality-sensitive hashing algorithm in Elixir

Background processes synchronization with GenServer and DynamicSupervisor

In this post we are gonna see how to handle background processes synchronization using powerful Elixir tools such as GenServer and DynamicSupervisor. Using these tools we can see real concurrent capabilities of Elixir.

For the example application, we are gonna sync GitHub Mentions for a specific user in a given GitHub repository. This sync should be made every X period of time to make sure we have Mentions up to date. We will be using GitHub’s REST API to fetch all Pull Request comments on the given repository, and then filter these comments by Mentions for the given user.