Citilink is one of Russia’s top online discount stores. Its extensive network of outlets and depots offers a wide variety of products. In 2020, Citilink’s sales amounted to 132.7 billion rubles, which makes it the third-largest company in Russia.
In 2010, Citilink’s data on inventory items, including stock status and prices, was stored in a relational database. This database was accessed through a monolithic service based on the Symfony PHP framework. Year after year, the load was increasing, and the relational database could no longer handle it.
For a long time, Citilink has been using a cache system, which reduced write and read load on the database. However, that system was becoming increasingly complicated. Caches had to be invalidated to guarantee data integrity in case of a reboot. At some point, the cache size reached 100 GB. Now it was more viable to put data in an in-memory database than to cache it.
Four main factors can explain the rapid increase in data and the complexity of architecture planning:
The catalog is fully updated in 3 seconds instead of 10–30 minutes
Data is provided in less than 30 milliseconds
70 database instances for the most data-intensive services
No caching, simpler code, more relevant data
DBaaS allows achieving a time to market of one minute instead of two weeks
Increased availability
Tell us about the tasks of your project,
and we will compose a solution for you on Tarantool
Tarantool experts will
contact you shortly