AiHummer
Қазақша
КіруЖеке кабинет
v1.1.x
{ }Swagger

Көпқабатты және идемпотенттік

v1.1.x · жаңартылды 2026-06-26

AiHummer болып табылады көппайдаланушы: бір шлюз бір дерекқордан көптеген жұмыс алаңына қызмет көрсете алады, олардың деректерін бөлек сақтай отырып. Мұны қауіпсіз ету үшін екі механизм бар — Postgres жол деңгейіндегі қауіпсіздік (RLS) оқу/жазу оқшаулау үшін, және бір идемпотенттік қабат сол арқылы қайталау және бұрылысты қалпына келтіру нақты әлемдегі жанама әсерді екі рет жасамайды.

Деңгей: Катарлық деңгейдегі қауіпсіздіктің көптік жалға алушыларды оқшаулау ақылы арқылы шектеледі Кәсіпорын деңгей — тегін/Қоғамдық платформаның бөлігі емес; идемпотенттік қабат негізгі құрамдастың бөлігі болып табылады.

Жол деңгейіндегі қауіпсіздік арқылы жалға алушыны оқшаулау

Ограничение орындалады деректер базасында, тек қосымша кодында ғана емес. AiHummer сұраныстарды арқылы орындайды шектелген Postgres рөлі (aihummer_app) ол RLS саясаттары қолданылған, сондықтан дерекқор өзі белсенді жалға алушыға жатпайтын жолдарды қабылдамайды.

RLS дегеніміз қатысу. Сіз оны шектеулі рөл үшін шлюзге екінші қосылу жолын беру арқылы іске қосасыз:

# 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] Хостқа арналған жергілікті орнатулар үшін орнатушы орнатады AIHUMMER_DB_APP_URL автоматты түрде, сондықтан стандартты орналастыруда RLS әдетте қосулы болады. Егер айнымалы жоқ, шлюз тек иесі пулында жұмыс істейді және RLS жоқ белсенді.

Әр-тұрғын үшін шектеу

Шектеулі рөл ішінде әрбір сұрау оның жалға алушысына арналған: шлюз қосылымда ағымдағы жалға алушы контекстін орнатады, осылайша RLS саясаты дұрыс жұмыс кеңістігіне қатысты шешіледі. WHERE tenant_id = … фильтрлер everywhere қолмен жасалмаған; саясат оны орталықтандырылған түрде жүзеге асырады, яғни бір фильтрдің өткізіп жіберуі басқа жалға алушының жолдарын ағып кетуіне жол бермейді.

Жүйе / айналып өту режимі

Кейбір жұмыстар заңды түрде кросс-тенант болып табылады — барлық инстанция бойынша жұмыс істейтін фондық жұмысшылар, жоспарлаушылар және техникалық қызмет көрсету тапсырмалары. Олар мына жерде іске қосылады жүйе / айналып өту режимі солар не қажет екенін көре алады. Айналып өту сенімді ішкі қызметкерлер үшін сақталған, сұраныстарды өңдеу жолдары үшін емес.

[!WARNING] Миграциялар әрдайым иеленуші пулда жұмыс істейді, шектеулі рөлде ешқашан емес. Иесінің қосылымында схеманы өзгерту және RLS қолдану құқықтары бар саясаттар; шектеулі рөл әдейі жасамайды. Екі байланысты сақтаңыз жолдар ерекше және беру aihummer_app тек қажет нәрсені атқару рөлі.

Идемпотентті жанама әсерлер

Айналым нақты әлемдегі жанама әсерлерді тудыруы мүмкін: хат жіберу, хабарламаны арнаға қайта жіберу. Егер айналым қайта орындалса — уақытша қате болғандықтан немесе портал айналымның ортасында қайта іске қосылып, қалпына келтіру оны қайта ойнағандықтан — сол жанама әсерлер міндетті түрде емес екі рет болады. AiHummer бұлты екі үйлесіп жұмыс жасайтын бөліктер арқылы кепілдік береді.

Қайта жалғасатын тіркелім кілті

Әрбір жанама әсер белгілі бір нәрсеге тіркеледі қайта бастау-тығыз тіркеу кілті: бұрылыстан детерминирленген түрде алынған кілт, сол себепті сол бұрылыстың қайта ойнатылуы жаңасын емес, сол кілтті есептейді. Леджер қай кілттердің бұрын әрекетке түскенін еске сақтайды.

Қоса әсер ету кедері

Мұндай әсердің алдында хат немесе арна-жіберу орындалғанда, ол арқылы өтеді жанама әсер тосқыны журналды тексертетін кілт. Егер бұл кілт бұрын іске қосылған болса, тосқауыл қысқа тұйықталады және эффект өткізіледі; егер жоқ болса, эффект іске қосылады және кілт тіркеледі.

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

Нәтиже ішкі жағынан жеткізу кем дегенде бір рет болса да, сыртқы жағынан дәл-бір рет мінез-құлық. Қайта әрекет жасау құрылымы бойынша қауіпсіз, бұл қалпына келтіруді айналдырып орындауға мүмкіндік береді (қараңыз Сенімді жеткізу және қалпына келтіру) тұтынушыға бірдей хатты немесе бірдей жауапты екі рет жібермей, үзік болған кезекті қайта ойнаңыз.

[!TIP] Міне сондықтан AiHummer кепілдендірілген жеткізуді және автоматты бұрылыс қалпына келтіруді ұсына алады қалыпты көшірме хабарлардың қауіпсіздігісіз — идемпотенттік негіз болып саналады жеткізу кепілдіктері негізделген.

Келесі қайда