AiHummer
Аԥсшәа
Аиалаҵара
v1.0.x
{ }Swagger

Мультитенантра & идемпотентра

v1.0.x · ирҿыцуп 2026-06-26

AiHummer мультитенантуп: акызаҵәык агейтуэй акырынтә ауаажәларатә ҭыԥ ималоит акызаҵәык адырраҭарадза аҟынтә рдыррақәа реихазҵаны. Ҩба амеханизм ари ишәарҭарада ауеит — Postgres Row-Level Security (RLS) аԥхьара/аҩра аизырхара рзы, насгьы идемпотентратә услар аретрайқәеи ахаҿ аиҭашьақәыргылареи аамҭала иҟоу аалырҟьара ҩынтә рымуртә.

Атенант аизырхара Row-Level Security ала

Аизырхара адырраҭарадза аҿы ишьақәгылоуп, аппликациа акод аҿы мацара акәым. 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 = … афильтрқәа зегьы рҿы напыла иаԥырмҵаӡом; аполитика уи централла ишьақәнаргылоит, уи аанарԥшуеит иаԥырԥҟьаз афильтр егьырҭ атенант асрокқәа аалырҟьартә алшара ишамоу.

Асистема / абайпас режим

Аусура ҩаԥхьараны кросс-тенантуп — азхылаԥшратә аусуҩқәа, аиҭархиаҩқәеи аусура аусқәеи зегьы аинстанс ала иауеит. Ари иауеит асистема / абайпас режим аҿы рыхәҭоу рбартә. Абайпас иаазааны идоу ауаажәларатә аусуҩқәа рзы иаҟоуп, аазҵаара-обработка апаҭ рзы мап.

[!WARNING] Амиграциақәа зегьы ауонер-пул аҿы иауеит, азакәызаалак иазааны идоу ароль ала мап. Ауонер адхалара амалра ималоит асхема аиԥшахара ацны RLS аполитикақәа рыруртә; иазааны идоу ароль ҩаԥхьараны имам. Ҩба адхалара асрокқәа хазырхазны иаанкыл насгьы aihummer_app ароль уи иахәҭоу мацара иаҭ.

Идемпотентратә аалырҟьарақәа

Ахаҿ ҩаԥхьаратә аалырҟьарақәа иаԥиҵартә алшоит: ашәҟәы аршьҭра, ажәабжь аканал ахь иаҭакыҵны аршьҭра. Ахаҿ иеиҭагар — иуланахо аиашамра иабзоураны, ма агейтуэй ахаҿ агьежьаҿы иаиҭагаз насгьы аиҭашьақәыргылара иеиҭанарԥшуа — убри аалырҟьарақәа ҩынтә рымуртә. AiHummer ари иқәнаршәоит ҩба еицныҟәало ахәҭақәа рацны.

Resume-стабилтә ledger-аҭыӡҭыԥ

Иаауазаалак аалырҟьара иануп resume-стабилтә ledger-аҭыӡҭыԥ: ахаҿ аҟынтә детерминистла иҵыху аҭыӡҭыԥ, уи аҟынтә убри ахаҿ аиҭаԥшра убри акызаҵәык аҭыӡҭыԥ иҟанаҵоит, иҿыцу аҟынтә мап. Ledger игәынкьалоит аҭыӡҭыԥқәа иарбаны иаусҟаҵахьоу.

Аалырҟьара абарьер

Аалырҟьарак абас ашәҟәы ма аканал-аршьҭра иануу ашьҭахь, уи иахьыло аалырҟьара абарьер ledger иаԥшуа. Ари аҭыӡҭыԥ иаусҟаҵахьазар, абарьер иаԥырҟьоит насгьы аалырҟьара иаԥхоит; иаусырмҟаҵацзар, аалырҟьара иауеит насгьы аҭыӡҭыԥ иануп.

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

Алҵшәа ауп exactly-once адәныҟатәи аҿагылашьа, ашьҭаҵара иаҩныҟа at-least-once иаауазаалагьы. Аретрайқәа ишьақәгыларала ишәарҭарам, убри ауп ахаҿ аиҭашьақәыргылара (ахь(уба Ашьҭаҵара, outbox & аиҭашьақәыргылара) иаԥырҟьаз ахаҿ иеиҭанарԥшартә зыршаахо аиашьара акызаҵәык амеил ма акызаҵәык аҭак ҩынтә иоумартә.

[!TIP] Убри ауп AiHummer иқәныршәоу ашьҭаҵареи автоматтә ахаҿ аиҭашьақәыргылареи иадуу ажәабжьқәа рҩынтәтәра ашәарҭарада иаалартә зыршаахо — идемпотентра ауп ашьҭаҵара аиқәыршәарақәа изшьаԥгылоу абаза.

Аҩаџьара иуцо