This code is part of a Blogpost which you can find here. Please have a read the blog before exploring the example to better understand the problem and the architecture we are going to deploy.