Gen_spoxy - caching made fun!


Spot.IM, the company I work for, is the leading real-time commenting system for top tier publishers sites.
Among our clients are FoxNews, AOL, RussianToday.

We serve Billions of requests per month that actually hit our Backend (since we render user specific responses).

The (by far) most popular endpoint is for rendering a conversation with user specific data in real-time.

In order to handle better the scale requirements we’ve created gen_spoxy. gen_spoxy a library that makes it very easy to create from scratch highly-concurrent applicative reverse-proxy that holds an internal short-lived (configurable) cache.

When a request is being processed, if it’s data is in the Cache, we add the missing parts specific to the user and return a response.

When there is a Cache miss, we forward the request to another service for doing the actual pre-rendering of the data and then we Cache it.

There’s is also an option to return a stale response from the Cache (data that hadn’t been garbage collected yet) and trigger a refresh Cache task in the background.

This code has been running for about 6 months so far in production

We’d love you to take a look and give us some feedback!


Thank you!