Napačna dilema
Razprava monolita proti mikrostoritvam pogosto zapade v dogmatičnost: mikrostoritve so „sodobne“, monolit je „zastarelo“. V resnici je izbira arhitekture inženirska odločitev, ki je odvisna od konkretnega konteksta — velikosti ekipe, kompleksnosti domene, zahtev po skaliranju in faze projekta. Napačna izbira v katero koli smer ima resne posledice.
Kdaj je monolit prava izbira
Monolitna arhitektura je primerna, ko: ekipa je majhna (2–5 razvijalcev) in komunikacijski stroški med ekipami niso dejavnik, domena je razmeroma homogena in vse komponente se skalirajo podobno, hitrost razvoja je prednostna pred fleksibilnostjo namestitve, projekt je v zgodnji fazi in meje med komponentami še niso jasne. Dobro strukturiran monolit z jasnimi moduli je bistveno boljši od slabo zasnovanega sistema mikrostoritev.
Kdaj mikrostoritve postanejo nujne
Prehod na mikrostoritve se utemelji, ko: različne komponente zahtevajo različno skaliranje (npr. storitev OCR potrebuje GPU, storitev za avtentikacijo ne), več ekip dela na istem sistemu in se medsebojno blokira, posamezne komponente zahtevajo različne razvojne cikle (ena zahteva dnevne namestitve, druga tedensko stabilnost), odpornost na napake je kritična — izpad ene storitve ne sme povzročiti izpada celotnega sistema.
Migracija: prizmatični pristop
Migracija iz monolita v mikrostoritve redko uspe kot projekt za enkratno izvedbo. Pristop prizme: prepoznajte eno samo, jasno omejeno zmožnost in jo izločite v neodvisno storitev. Pustite monolit delovati za vse ostalo. Ko se nova storitev stabilizira, ponovite z naslednjo zmožnostjo. Ta postopna pot je varnejša, ker se uči iz vsake iteracije in ne zahteva vnaprejšnjega načrtovanja celotne ciljne arhitekture.
Arhitekturne odločitve pri ESKOM.AI
ESKOM.AI-jeva večagentna platforma je zasnovana kot hibridna arhitektura. Jedro orkestracije je monolitno — zagotavlja doslednost usmerjanja in nizko latenco komunikacije med agenti. Posamezni agenti pa delujejo kot neodvisne storitve z lastnimi odvisnostmi, razvojnimi cikli in zmožnostmi skaliranja. To kombinacijo smo izbrali, ker odraža realni vzorec obremenitve: orkestracija zahteva nizko latenco in doslednost, medtem ko posamezni agenti zahtevajo neodvisno skaliranje in izolacijo napak.