📄️ RDBMS… simplement du relationnel
Il faut utiliser du relationnel. Les bases relationnelles garantissent un schéma de données ainsi que l'affiliation entre plusieurs items de cette base.
📄️ ORM
Nous faisons le choix d'utiliser Prisma pour interagir avec notre base de données RDBMS. Comme nous souhaitons versionner le plus de choses, avoir un ORM permet de garder cette rigueur.
📄️ PostgreSQL plutôt que MySQL
Nous préconisons PostgreSQL pour du RDBMS. Cette base de données est orientée objets, ce qui permet de pousser un peu plus loin les contraintes sur les formats de données contrairement à une MySQL/MariaDB.
📄️ Un seul espace de stockage, ça serait le rêve ?
Ce qui est le plus compliqué quand on gère de l'opérationnel ce n'est pas le stateless (normalement équivalent à votre code JS qui tourne), mais le stateful (partout où vous avez de la donnée stockée).
📄️ Stockage de fichiers (au revoir buckets S3)
Bien que le bucket S3 soit devenu une référence voire même le choix par défaut quand on commence un projet, on aimerait vous mettre en garde en redétaillant l'intégration d'un bucket S3 au sein d'un applicatif.
📄️ Job queues / message broker
Une "job queue" est utile :
📄️ Cache
Il ne sert à rien de chercher à optimiser son applicatif avant même d'avoir atteint les limites de la stack actuelle. Si vraiment vous avez des problèmes de performances essayez d'abord de cibler l'origine du problème :
📄️ Moteur de recherche
Certains produits auront peut-être besoin d'un outil lourd comme ElasticSearch pour stocker et optimiser les recherches à effectuer, mais encore une fois, dans la grande majorité des cas votre PostgreSQL suffira.
📄️ Faire la maintenance
Le premier avantage est quand vous développez, plutôt que de lancer plusieurs services pour faire tourner un produit très simple, vous avez votre PostgreSQL et c'est tout.
📄️ Suis-je toujours un produit portable avec mon stateful ?
Nous préconisons toujours d'utiliser les produits de votre hébergeur lorsqu'il s'agit du stateful. Car l'hébergeur se chargera à votre place des mises à jour opérationnelles et vous garantira un minimum de disponibilité de service. Pour rappel, ce n'est pas votre métier… Alors que votre hébergeur, lui, doit faire une palanquée de tests pour être sûr que quand il lancera une migration, cela ne mettra pas en défaut sa dizaine de milliers de clients.