Introduction
PgDog est une solution qui vise à rendre la base de données Postgres scalable de manière horizontale, grâce à un proxy placé devant elle. L'objectif est de permettre à Postgres de gérer des tables de plus de 100 To et de traiter plus d'un million de requêtes par seconde.
Contexte Technique
Les bases de données comme Mongo ou Dynamo existent en partie à cause des problèmes de scalabilité de Postgres. PgDog cherche à résoudre ce problème en utilisant un proxy qui permet à Postgres de fonctionner de manière scalable. La solution est open source et peut être déployée partout, y compris sur des serveurs locaux ou dans des comptes cloud. Il suffit de télécharger l'image Docker, de modifier l'URL de la base de données et de laisser PgDog gérer le travail.
PgDog est actuellement utilisé en production pour servir plus de 2 millions de requêtes par seconde, réparties sur des dizaines de déploiements. Plus de 20 To de données ont été shardées. La solution est téléchargée plus de 1,4 million de fois sur GitHub et une nouvelle version est publiée chaque semaine.
Analyse et Implications
L'équipe derrière PgDog est composée d'ingénieurs expérimentés dans le domaine de l'infrastructure et des applications. Ils ont déjà travaillé sur des projets à grande échelle utilisant Postgres, comme Instacart, où ils ont réussi à scaler la base de données pour gérer des centaines de milliers de commandes de livraison par minute.
La technologie utilisée par PgDog est désormais disponible sous forme de produit open source. L'équipe a levé 5,5 millions de dollars auprès d'investisseurs pour poursuivre le développement de la solution et la rendre encore plus scalable et fiable.
Perspective
À l'avenir, PgDog devrait continuer à évoluer pour répondre aux besoins des utilisateurs. Une édition Enterprise est actuellement en développement pour faciliter le déploiement de la solution sur AWS, avec une prise en charge SLA fournie par l'équipe. Les utilisateurs peuvent suivre les mises à jour de la solution en consultant les documents officiels, en suivant le référentiel sur GitHub ou en rejoignant la communauté Discord.