Защо всяко приложение на Mythex получава собствена база данни
Когато приложение, което строите в Mythex, трябва да запази данни — регистрации, резервации, поръчки — проектът получава собствена Postgres база данни. Не таблица в обща база, не схема до чужда: отделна база, създадена при поискване, която заспива, когато никой не я ползва. Ето защо я построихме така и какво струва.
Какво получавате
Когато поискате данни („запази имейлите от списъка с чакащи“, „съхрани резервациите“) или ползвате командата /database, Mythex:
- създава отделна Postgres база за проекта (в момента Postgres 17),
- вмъква данните за връзка в работното ви пространство и в публикуваното приложение като променливи на средата, така че никога да не се появяват в кода ви, и
- позволява на агента да създава таблици и да чете и пише данни вместо вас.
Едната и съща база се използва от живия преглед и от публикуваното приложение. Тя заспива след 5 минути бездействие и се буди при следващата заявка. Новите бази започват малки и могат да се мащабират при натоварване, с таван, така че една заявка, която се е оплела, да не расте безкрайно. Повече в документацията за базите данни.
Защо не една голяма обща база?
Обща база с колона, която казва на кой приложение принадлежи всеки ред, е по-евтина за поддръжка и по-проста за работа. Ние не я избрахме по четири причини.
1. Изолация, без да трябва да се доверявате
Кодът, написан с AI, греши. В обща база една липсваща WHERE app_id = … в заявката на едно приложение би прочела или презаписала данните на друг клиент. С база за всяко приложение няма чужди данни в обсега — бъгът остава в собственото си приложение.
2. Истински Postgres, а не собствен слой
Вашето приложение говори стандартен Postgres с обикновен низ за връзка. Всяка библиотека, ORM или инструмент, който работи с Postgres, работи и тук. Ако експортирате проекта, за да го пуснете другаде, той очаква Postgres база — нещо, което предлага всеки хостинг доставчик — а не API, специфично за Mythex.
3. Всяко приложение може да бъде оформено според нуждите си
Едно приложение иска таблица bookings с уникално ограничение върху времевите слотове; друго иска пълнотекстово търсене по продукти. С ваша собствена база схемата и миграциите на всяко приложение са негова работа. Нищо не трябва да се вписва в дизайн, който е най-малкото общо кратно.
4. Цената следва употребата
Тъй като всяка база заспива самостоятелно, приложение, което никой не ползва, струва почти нищо, а цената на заето приложение се вижда като собствен ред. Употребата на публикувани бази се таксува според това, което базата действително е измерила — как работи таксуването.
Компромисите
Този дизайн не е безплатен:
- Студени старти. Заспала база отнема момент, за да се събуди при първата заявка след тихо време. За повечето приложения това е едва забележимо; за приложение, което трябва да отговаря мигновено по всяко време, е нещо за обмисляне.
- Цена, докато е буден. Базата остава будна, докато нещо я пита. Приложение, което пита базата си на всеки няколко секунди, я държи будна денонощно и струва повече от това, което зарежда при поискване. Ако употребата ви изглежда по-висока от очакваното, обикновено това е причината — помолете AI да спре опитите и да зарежда данните, когато са нужни.
- Повече подвижни части за нас. Създаването, проследяването и почистването на хиляди бази е повече работа, отколкото на една. Това е наш проблем, а не ваш.
Ако сте нови в базите данни
Базата е мястото, където приложението пази онова, което трябва да помни. Ако идеята е нова за вас, започнете с какво е база данни и какво е Postgres. Когато сте готови да построите нещо, което пази данни, как да построите приложение с AI описва добавянето ѝ стъпка по стъпка.