AiHummer
Türkmençe
GirmekŞahsy kabinet
v1.2.x
{ }Swagger

Çoxugurlylyk we idempotentlik

v1.2.x · täzelendi 2026-06-26

AiHummer köp ijaraly: bir gapy bir maglumatlar bazasyndan köp iş ýerlerine hyzmat edip bilýär, olaryň maglumatlaryny aýratyn saklap. Munuň howpsuz bolmagyny iki mehanizm üpjün edýär — Postgres Setir Derejeli Howpsuzlyk (RLS) okamak/yazmak izolýasiýasy üçin, we bir idempotentlik gatlagy täzeden synanyşmalar we öwrüliş dikeldiş hakykatdaky ýan täsirleri gaýtalamaz ýaly.

Dereje: Setir derejeli howpsuzlyk köp ýyllyk bölüniş tölegli tarapyndan dolandyrylýar Kärhana basgançak — mugt/Merkezi platformanyň bir bölegi däl; idemopotentlik gatlagy esasy bölege girýär.

Ýerleşen derejeli howpsuzlyk bilen tenant bölünişi

Jüjümleme diňe programma kodunda däl, eýsem maglumatlar bazasynda hem berkidilýär. AiHummer soraglary arkaly işledýär çäklendirilen Postgres roly (aihummer_app) RLS syýasatlary ulanylýan, şonuň üçin maglumatlar bazasy özüniň işleýän tenantyna degişli bolmadyk setirleri ret edýär.

RLS bu azat taýdan gatnaşmak. Siz ony çäklendirilen rol üçin geçelgede ikinji bir birleşdirme setirini berip işjeňleşdirýärsiňiz:

# 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] Myhman-özboluşly gurnamalar üçin gurnamaçy aşakdakydygyny belleýär AIHUMMER_DB_APP_URL awtomatiki, şonuň üçin standart ýerleşdirişde RLS öndümli ýagdaýda açykdyr. Eger üýtgeýji ýok, geçelge diňe eýe basseýninde işleýär we RLS ulanylmaýar aktiw.

Her ýerleşim üçin diapazon kesgitleme

Çäklendirilen rolda, her haýyş onuň şaýady bilen çäklenýär: geçelge baglanyşykda häzirki şaýad kontekstini kesgitleýär, şeýlelik bilen RLS syýasatlary dogry iş meýdançasyna görä çözülýär. WHERE tenant_id = … filtrler her ýerde el bilen dokalanok; syýasat ony merkezi taýdan berjaý edýär, bu bolsa geçirilmedik filtr başga bir mylaýymly rowlaryň akyp geçmeginiň mümkindigini aňladýar.

Sistem / öwrülişik režimi

Käbir işler kanuny taýdan territoriýalaryň arasynda bolup biler — fond işleýjiler, meýilnamalaşdyrýanlar we ähli ulgam boýunça işleşýän hyzmat işleri. Bularyň işleýän ýeri sys temat / öwrülişik režimi şeýlelik bilen näme gerekdigini görüp bilerler. Geçmek ynamdar içki işgärler üçin niýetlenendir, sorag dolandyrýan ýollara däl.

[!WARNING] Köçürmeler hemişe eýe bazasynda işleýär, hiç haçan çäklendirilen rolda däl. Owner baglanyşygy schema üýtgetmek we RLS-i ulanmak hukuklaryna eýedir syýasatlar; çäklendirilen ýagdaý bu roly niýetli usulda etmeýär. Iki baglanyşygy sakla simleri tapawutly we ber aihummer_app diňe zerur bolan rolyńyńy ýerine ýetiriň.

Idempotent tarap täsirleri

Bir öwrüm hakyky dünýädäki goşmaça netijeleri döredip biler: poçta ibermek, bir kanala maglumaty yzyna ugratmak. Eger bir öwrüm gaýtadan synanyşylsa — geçici näsazlyk sebäpli ýa-da gapy orta öwrümiň dowamynda täzeden başlanda we dikeltme ony gaýtadan ýerine ýetirende — şol goşmaça netijeler hökmanydyr däk iki gezek bolýar. AiHummer muny iki hyzmatdaşlyk edýän bölek bilen kepillendirýär.

Täzeden dowam etdirilip bilinýän registr açary

Her bir ýany täsir birine garşy ýazylýar täzeden işe başlamaly durnukly ýazgy açary: burawdan kesgitlenýän açar, şonuň üçin şol bir burawy gaýtadan oýnamak şol bir açary hasaplaýar, täze açary däl. Hesap kitaplygy haýsylaryň açaryň öňünden iş salnanlygyny ýatda saklaýar.

Ýany täsir tosgady

Şol bir täsir bolmazdan öň poçta ýa-da kanala ibermek öne ýerine ýetirilýär, ol üsti bilen geçýär ýan täsir tosgady bu hasaptama kitapçasyny barlaýar. Eger bu açar eýýäm işledi bolsa, päsgelçilik gysga baglanýar we täsir geçip gidýär; eger ýok bolsa, täsir işlemäge başlaýar we açar bellige alynýar.

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

Netije şudur içerki taýdan azyndan bir gezek eltilýän bolsa-da, takyk bir gezek daşarky hereket. Gaýtadan synanyşmalar gurluş taýdan howpsuzdyr, munuň netijesinde öwrülme dikeldilmegi mümkin (garaŋ Ygtybarly eltme we gaýtaryp alma) bölünip giçiren nobaty, müşderiniň şol bir e-poçta ýa-da şol bir jogaby iki esse almazdan gaýtadan jogap beriň.

[!TIP] Şonuň üçinem AiHummer kepillikli eltip bermäni we awtomatiki öwrülmegi üpjün edip biler köplenç gaýtalanýan habarlaryň howpunyz bolmazdan — idempotentlik esasdyr eltiliş kepillikleri gurluşýar.

Indi nire?