Pourquoi chaque application Mythex a sa propre base de données
Lorsqu'une application que vous construisez sur Mythex doit enregistrer des données — inscriptions, réservations, commandes —, Mythex donne à ce projet sa propre base Postgres. Pas une table dans une base partagée, pas un schéma à côté de celui de quelqu'un d'autre : une base distincte, créée à la demande, qui se met en veille lorsque personne ne l'utilise. Voici pourquoi nous l'avons conçue ainsi, et ce que cela coûte.
Ce que vous obtenez
Lorsque vous demandez des données (« enregistre les courriels de la liste d'attente », « stocke les réservations ») ou que vous utilisez la commande /database, Mythex :
- crée une base Postgres dédiée au projet (actuellement Postgres 17),
- injecte les détails de connexion dans votre espace de travail et dans votre application publiée sous forme de variables d'environnement, afin qu'ils n'apparaissent jamais dans votre code, et
- permet à l'agent de créer des tables et de lire et écrire des données pour vous.
La même base sert à l'aperçu en direct et à l'application publiée. Elle se met en veille après 5 minutes d'inactivité et se réveille à la requête suivante. Les nouvelles bases démarrent petites et peuvent monter en capacité sous charge, avec un plafond pour qu'une requête mal écrite ne puisse pas grossir sans limite. Pour en savoir plus, consultez la documentation sur les bases de données.
Pourquoi pas une seule grande base partagée ?
Une base partagée, avec une colonne indiquant à quelle application appartient chaque ligne, coûte moins cher à faire fonctionner et se gère plus simplement. Nous avons choisi de ne pas le faire, pour quatre raisons.
1. Une isolation à laquelle vous n'avez pas à vous fier
Le code écrit par l'IA fait des erreurs. Dans une base partagée, un seul WHERE app_id = … oublié dans la requête d'une application pourrait lire ou écraser les données d'un autre client. Avec une base par application, aucune donnée d'autre client n'est à portée — un bogue reste dans sa propre application.
2. C'est un vrai Postgres, pas une couche propriétaire
Votre application parle un Postgres standard, avec une chaîne de connexion normale. Toute bibliothèque, tout ORM ou tout outil qui fonctionne avec Postgres fonctionne ici. Si vous exportez votre projet pour l'exécuter ailleurs, il attend une base Postgres — ce qu'offre tout hébergeur, et non une API propre à Mythex.
3. Chaque application peut être conçue selon ses besoins
Une application veut une table bookings avec une contrainte d'unicité sur les créneaux horaires ; une autre veut une recherche plein texte sur ses produits. Avec sa propre base, le schéma et les migrations de chaque application lui appartiennent. Rien n'a à s'adapter à une conception au plus petit dénominateur commun.
4. Le coût suit l'usage
Comme chaque base se met en veille de son côté, une application que personne n'utilise coûte presque rien, et le coût d'une application très active apparaît sur sa propre ligne. L'usage des bases publiées est facturé d'après ce que la base a réellement mesuré — voir comment fonctionne cette facturation.
Les compromis
Cette conception n'est pas gratuite :
- Démarrages à froid. Une base endormie prend un moment à se réveiller à la première requête après une période calme. Pour la plupart des applications, c'est à peine perceptible ; pour une application qui doit répondre instantanément à toute heure, c'est un point à considérer.
- Coûts lorsqu'elle est éveillée mais inactive. Une base reste éveillée tant que quelque chose l'interroge. Une application qui interroge sa base toutes les quelques secondes la garde éveillée en permanence et coûte plus cher qu'une application qui interroge à la demande. Si votre usage semble plus élevé que prévu, c'est souvent la raison — demandez à l'IA de cesser d'interroger et de charger les données lorsqu'elles sont nécessaires.
- Plus de pièces mobiles de notre côté. Créer, suivre et nettoyer des milliers de bases demande plus de travail qu'une seule. C'est à nous de porter ce poids, pas à vous.
Si les bases de données vous sont nouvelles
Une base de données est l'endroit où une application conserve ce dont elle a besoin pour se souvenir. Si l'idée est nouvelle, commencez par qu'est-ce qu'une base de données et qu'est-ce que Postgres. Lorsque vous serez prêt à construire quelque chose qui stocke des données, comment construire une application avec l'IA explique comment l'ajouter.