Storage / dane aplikacji
Możliwości i podział odpowiedzialności
Storage służy do danych aplikacji. Język, kontrakt autora dostawcy, gospodarz procesu i sterownik magazynu mają osobnych właścicieli.
| Warstwa | Rola |
|---|---|
| Lang i generatory | Opis użycia storage oraz obsługiwane kontrakty i klienci kodu docelowego. |
| SDK | Publiczne abstrakcje, manifest providera i narzędzia zgodności autora rozszerzenia. |
| Storage Host w Runtime | Ładowanie wybranych bibliotek, bindingi i obsługa ABI. |
| Dostawca | Wykonanie operacji w Memory, SQLite lub PostgreSQL. |
Neutralne operacje
Dostawcy referencyjni mają put, get, list i delete. Rekord wskazują bucket i key; payload jest danymi JSON. Wynik odczytu może być skalarny albo sekwencyjny, obsługiwany przez kursor. API obejmuje też health oraz jawne transakcje.
Przy błędzie trzeba odczytać klasę błędu i kontekst operacji. Timeout nie jest uniwersalnym dowodem, że zapis na pewno nie nastąpił. Nie każda operacja jest bezpieczna do powtórzenia bez poznania jej skutku.
Query Plan i Mutation Plan
Istnieją neutralne kontrakty zapytań i mutacji. Referencyjne implementacje współdzielą mechanizmy ich znaczenia. SQLite i PostgreSQL mogą wykonać obsługiwany podzbiór po stronie bazy; dla pozostałych obsługiwanych kształtów używają właściwej ścieżki wykonania.
Nie oznacza to wsparcia dowolnego zapytania ani identycznego planu wydajnościowego. Trzeba sprawdzić wersję kontraktu, deklarowane capabilities, limity oraz zachowanie konkretnego dostawcy.
Native SQL i migracje
SQLite oraz PostgreSQL deklarują obsługę Native SQL i migracji. Kontrakt SQL obejmuje m.in. parametry i jawny opis kolumn wyniku. Nie jest jedną gwarancją przenośności dowolnego SQL pomiędzy obiema bazami.
Memory nie deklaruje tych możliwości. Wspólny interfejs nie usuwa różnic między dostawcami.
Wybór i zaufanie do dostawcy
Manifest junexis.provider/0.2 opisuje tożsamość, ABI, możliwości i skład pakietu. Referencyjny host używa junexis.storage.runtime/0.1 oraz JSONL przez stdin/stdout. Wymaga jawnego wskazania assembly providera.
Host uruchamia kod wybranej biblioteki; nie jest sandboxem dla niezaufanych sterowników. Zgodność ABI, kompletność pakietu i kontrola zaufania są odrębnymi sprawdzeniami.
Chcę napisać własnego dostawcę: SDK · Rola Storage Host w Runtime.
Storage a State
Storage przechowuje dane aplikacji, na przykład rekord pomiaru. State ma osobny zakres trwałych faktów komunikacji i wykonania. Dostawca SQLite nie staje się automatycznie providerem State ani trwałym backendem Observability.