Redis empowers Enkidoo

3 Ways Redis Powers Enkidoo’s AI

Alexandre Vincart-Émard by Alexandre Vincart-Émard

Supply chain management is at the heart of every retail company’s operations, whether a “mom and pop” shop or an international manufacturer. With the ever-increasing amount of data generated by modern supply chains, new digital technologies such as artificial intelligence and blockchain are poised to disrupt the old ways of managing inventory, suppliers, etc.

Our mission at is to help small and medium businesses increase their operational efficiency by being part of this smart supply chain revolution. Our optimization-as-a-service platform, which leverages the latest advances in cloud technologies and machine learning, is designed to help companies bolster their competitive advantage with simple, out-of-the-box solutions for demand planning, inventory optimization and network optimization.

Of course, all of this requires a primary database that’s fast, reliable and flexible — and that’s where Redis comes in. Below is the first in a series of blog posts wherein we’ll discuss a few of the ways we leverage Redis in our application.

Redis-ML powers our forecasting models

Redis-mlWe have found Redis’ persistence to be useful in a variety of ways. For instance, we’ve developed multiple forecasting models that use machine learning to predict demand for various products and product categories. The Redis-ML Module streamlined the process of building and deploying our predictive engines, including those we designed to estimate future demand based on historical data, as well as those that predict the sales of newly introduced items based on their features. Since we already did our machine learning development in Python, loading the models into Redis-ML required very little additional work for our team (thanks to the redis-py client).

Redis as a session store

We also use Redis in our conversational analytics platform. At ENKIDOO, we envision a future in which our smart supply chain assistant can answer useful open-ended questions, such as “What are the top three promotions I should run to address declining sales in Quebec?” We believe such insights should be accessible from anywhere, not just from within our app. As such, we have built custom integrations with various communication channels like Slack and Facebook Messenger to empower decision makers on the go.

Redis made managing user sessions for these different integrations quite easy. Our users can authenticate themselves on our platform, activate the channels they want, and Redis will take care of the rest (e.g. identifying these external requests to our servers with appropriate user token validation). Compared to alternative databases, Redis allows for larger usage concurrency at a much lower cost, bypassing the pains of sharding to satisfy large throughputs.

Redis TTL to the rescue

Additionally, we knew that this user information might be highly confidential, and needed preventive measures to protect it from prying eyes, while still allowing it to be shared with trusted contacts. This is where we found Redis’ “key timeout” functionality to be instrumental, as it allowed us to render sensitive information efficiently for a limited amount of time.

Overall, our developers love using Redis because it is lightweight, well-documented and has a great community contributing many useful open source libraries. In our mission to help users optimize their supply chains, Redis’ capacity to support different scenarios is critical. From serving as a simple session store, to allowing us to run predictive models, Redis powers multiple core facets of our service.