Warum jede Mythex-App ihre eigene Datenbank bekommt
Wenn eine App, die Sie auf Mythex bauen, Daten speichern muss, etwa Registrierungen, Buchungen oder Bestellungen, bekommt das Projekt eine eigene Postgres-Datenbank. Keine Tabelle in einer gemeinsamen Datenbank und kein Schema neben dem eines anderen: eine eigene Datenbank, bei Bedarf angelegt, die schlafen geht, wenn sie niemand nutzt. Hier erklären wir, warum wir es so gebaut haben und was es kostet.
Was Sie bekommen
Wenn Sie Daten anfordern („Wartelisten-E-Mails speichern“, „Buchungen ablegen“) oder den Befehl /database verwenden, macht Mythex Folgendes:
- Es legt für das Projekt eine eigene Postgres-Datenbank an (derzeit Postgres 17).
- Es fügt die Verbindungsdaten in Ihren Arbeitsbereich und Ihre veröffentlichte App als Umgebungsvariablen ein, sodass sie nie in Ihrem Code erscheinen.
- Es erlaubt dem Agenten, Tabellen anzulegen und Daten für Sie zu lesen und zu schreiben.
Dieselbe Datenbank nutzen die Live-Vorschau und die veröffentlichte App. Sie schläft nach 5 Minuten Leerlauf ein und wacht bei der nächsten Abfrage auf. Neue Datenbanken starten klein und können unter Last wachsen, mit einer Obergrenze, damit eine außer Kontrolle geratene Abfrage nicht unbegrenzt wachsen kann. Mehr dazu in der Datenbank-Dokumentation.
Warum keine große gemeinsame Datenbank?
Eine gemeinsame Datenbank mit einer Spalte, die angibt, zu welcher App jede Zeile gehört, ist günstiger zu betreiben und einfacher zu verwalten. Wir haben uns aus vier Gründen dagegen entschieden.
1. Isolation, der Sie nicht vertrauen müssen
KI-geschriebener Code macht Fehler. In einer gemeinsamen Datenbank könnte ein fehlendes WHERE app_id = … in der Abfrage einer App die Daten eines anderen Kunden lesen oder überschreiben. Mit einer Datenbank pro App sind keine Daten anderer Kunden erreichbar. Ein Fehler bleibt in seiner eigenen App.
2. Es ist echtes Postgres, keine proprietäre Schicht
Ihre App spricht standardmäßiges Postgres mit einer normalen Verbindungszeichenkette. Jede Bibliothek, jedes ORM und jedes Werkzeug, das mit Postgres funktioniert, funktioniert auch hier. Wenn Sie Ihr Projekt exportieren, um es anderswo laufen zu lassen, erwartet es eine Postgres-Datenbank, die jeder Hosting-Anbieter anbietet, und keine Mythex-spezifische API.
3. Jede App kann so geformt werden, wie sie es braucht
Eine App will eine Tabelle bookings mit einer eindeutigen Einschränkung auf Zeitfenster, eine andere will eine Volltextsuche über Produkte. Mit eigener Datenbank sind Schema und Migrationen jeder App ihre eigene Sache. Nichts muss auf einen kleinsten gemeinsamen Nenner passen.
4. Die Kosten folgen der Nutzung
Da jede Datenbank für sich schlafen geht, kostet eine App, die niemand nutzt, fast nichts, und die Kosten einer stark genutzten App erscheinen als eigene Zeile. Die Nutzung veröffentlichter Datenbanken wird anhand dessen abgerechnet, was die Datenbank tatsächlich gemessen hat. So funktioniert diese Abrechnung.
Die Abwägungen
Dieses Design ist nicht kostenlos:
- Kaltstarts. Eine schlafende Datenbank braucht einen Moment, um bei der ersten Abfrage nach einer ruhigen Phase aufzuwachen. Für die meisten Apps fällt das kaum auf. Für eine App, die zu jeder Stunde sofort antworten muss, ist es ein Thema.
- Kosten, wenn sie wach, aber untätig ist. Eine Datenbank bleibt wach, solange irgendetwas sie abfragt. Eine App, die ihre Datenbank alle paar Sekunden abfragt, hält sie rund um die Uhr wach und kostet mehr als eine, die bei Bedarf abfragt. Wirkt Ihre Nutzung höher als erwartet, liegt es meist daran. Bitten Sie die KI dann, das Abfragen einzustellen und Daten nur bei Bedarf zu laden.
- Mehr bewegliche Teile für uns. Tausende Datenbanken anzulegen, nachzuverfolgen und aufzuräumen ist mehr Arbeit als eine. Das ist unser Problem, das wir tragen, nicht Ihres.
Wenn Sie neu bei Datenbanken sind
Eine Datenbank ist der Ort, an dem eine App behält, was sie sich merken muss. Wenn das Konzept neu für Sie ist, beginnen Sie mit was eine Datenbank ist und was Postgres ist. Wenn Sie bereit sind, etwas zu bauen, das Daten speichert, zeigt wie Sie eine App mit KI bauen, wie man sie hinzufügt.