For 8 years, Doctolib has allowed millions of users to book medical appointments, using a single PostgreSQL database.
Today, Doctolib runs on AWS Aurora, the AWS managed version of PostgreSQL and is operating one of the largest transaction databases in Europe. We are using the biggest available machines, and we are still planning to upscale even more, to support the growth of our business. Yes, it’s possible to split this huge database or to move some parts to another kind of storage. At Doctolib, we like the simplicity of having a single database to deal with.
In this session, we will
- Expose the actual limits, our immediate needs, and what we plan to do afterwards
- Our criteria to find a replacement solution. Scalability, code compatibility, costs, hosting…
- How we chose to benchmark each solution
- Which solution was tested? And not tested?
- The result of the evaluation of 3 solutions: Spanner, Yugabyte, and Citus.
Instead of an ideal solution, we will try to expose which trade-offs were discovered and chosen.
For 10 years, Bertrand has been a consultant at Octo Technology, specialising in performance, DevOps, and infrastructure. He moved to SF for two years to be SRE at Google, in charge of Google Search indexing pipelines. He is now Principal SRE at Doctolib, the European leader in medical appointments management. He is working on scaling and reliability problems, to support 20k requests per second on one of the largest transactional databases in Europe.