AiHummer
Eesti
SisselogimineKonto
v1.2.x
{ }Swagger

Mitmeinimelisus ja idempotentsus

v1.2.x · uuendatud 2026-06-26

AiHummer on mitmeüüriline: üks värav võib teenindada mitut tööruumi ühest andmebaasist, hoides nende andmed siiski eraldi. Turvaliseks muutmiseks on kaks mehhanismi — Postgresi reataseme turvalisus (RLS) lugemise/kirjutamise isoleerimiseks ja idempotentsuskihi nii et uuesti proovimine ja pöörde taastamine ei dubleeriks kunagi reaalse maailma kõrvalmõju.

Tase: Rida-taseme turvalisuse mitmekasutajaliidese isolatsioon on tasulise teenuse taga Ettevõte tase — ei kuulu tasuta/Kogukonna platvormi hulka; idempotentsuse kiht on osa põhiosast.

Hüüriisolatsioon reatasandi turvalisusega

Isolatsiooni rakendatakse andmebaasis, mitte ainult rakenduse koodis. AiHummer käivitab päringuid läbi piiratud Postgresi roll (aihummer_app) millele on rakendatud RLS-poliitikaid, nii et andmebaas ise lükkab tagasi read, mis ei kuulu aktiivsele üürnikule.

RLS on osalemiseks. Sa aktiveerid selle, andes väravale teise ühendusstringi piiratud rolli jaoks:

# gateway.env
# Owner pool — runs migrations and privileged maintenance
AIHUMMER_DATABASE_URL=postgres://aihummer:***@localhost:5432/aihummer?sslmode=disable
# Restricted role — activates RLS for normal request traffic
AIHUMMER_DB_APP_URL=postgres://aihummer_app:***@localhost:5432/aihummer?sslmode=disable

[!NOTE] Hosti-põhiste installide puhul seab paigaldaja AIHUMMER_DB_APP_URL automaatselt, nii et RLS on tavapärases kasutuselevõtus vaikimisi sisse lülitatud. Kui muutuja puudub, värav töötab ainult omanikupoolil ja RLS ei ole aktiivne.

Iga üürniku ulatuse määramine

Piiratud rolli puhul on iga päring seotud oma üürnikuga: värav määrab ühendusele kehtiva üürniku konteksti, nii et RLS-i poliitikad lahenevad õige tööruumi suhtes. WHERE tenant_id = … filtrid ei ole kõikjal käsitsi valmistatud; poliitika kehtestab selle keskse kontrolli kaudu, mis tähendab, et ühe filtri vahelejätmine ei saa lekkida teise üürniku ridu.

Süsteem / mööda lähenemise režiim

Mõned tööd on seaduslikult rist-üürniku — taustatöötlused, ajastajad ja hooldustööd, mis toimivad kogu eksemplari ulatuses. Need töötavad süsteem / mööda lähenemise režiim nii et nad saavad näha, mida nad peavad. Läbipääs on reserveeritud usaldusväärsetele sisetöötajatele, mitte päringute käsitlemise radadele.

[!WARNING] Migratsioonid jooksevad alati omanike paisus, mitte kunagi piiratud rolli all. Omneliidese ühendusel on skeemi muutmise ja RLS-i rakendamise õigused poliitikad; piiratud roll ei tee seda tahtlikult. Hoia kahte ühendust stringid eristatud ja anda aihummer_app täida ainult seda, mida see vajab.

Idempotentsed kõrvaltoimed

Pöörde võib tekitada reaalmaailma kõrvalmõjusid: kirja saatmine, sõnumi postitamine tagasi kanalisse. Kui pöörde üritatakse uuesti — ajutise vea tõttu või selle tõttu, et värav taastas end pöörde keskel ja taastumine kordab seda — peavad need kõrvalmõjud ei juhtub kaks korda. AiHummer tagab selle kahe koostööd tegevate osa abil.

Taastatava pearaamatu võti

Iga kõrvaltoime on registreeritud vastavalt taasalusta-stabiilne pearaamatu võti: võti, mis on deterministlikult tuletatud käigust, nii et sama käigu kordamine arvutab sama võtit, mitte uut. Pearaamat mäletab, millised võtmed on juba kasutusele võetud.

Kõrvaltoime barjäär

Enne sellist efekti nagu post või kanali-saadet sooritatakse, see läbib kõrvaltoime tõke mis kontrollib pearaamatut. Kui see võti on juba käivitatud, lühistab tõke ja mõju jäetakse vahele; kui mitte, siis mõju käivitatakse ja võti kinnitatakse.

side-effect requested
   └─▶ compute resume-stable ledger key
         └─▶ barrier: key already committed?
               ├─ yes ─▶ skip (no double-send)
               └─ no  ─▶ perform effect ─▶ commit key

Tulemus on täpselt-korda väliskäitumine isegi kui kohaletoimetamine on vähemalt-korda sisemiselt. Taaskatsed on konstruktsiooni poolest ohutud, mis võimaldab pööramise taastamist (vt Usaldusväärne kohaletoimetamine ja taastamine) esitage katkestatud käik uuesti ilma, et klient saaks sama e-kirja või sama vastust kaks korda.

[!TIP] Sellepärast suudab AiHummer pakkuda garanteeritud kohaletoimetamist ja automaatset pööramise taastamist ilma tavapärase topeltsõnumite riskita — idempotentsus on aluseks tarnegarantiid on üles ehitatud.

Kuhu järgmine