U realizua një tjetër version i ErgoFramework 2.2, i cili implementon një rrjet të plotë të protokollit Erlang dhe bibliotekën e tij OTP në gjuhën Go. Framework-u i ofron zhvilluesit një mjet fleksibël nga bota e Erlang për të krijuar zgjidhje të shpërndara në gjuhën Go duke përdorur shabllone dizajni të gatshme si gen.Application, gen.Supervisor dhe gen.Server, si dhe të specializuara - gen.Stage (pub/sub i shpërndarë), gen.Saga (transaksione të shpërndara, implementimi i modelit të dizajnit SAGA) dhe gen.Raft (implementimi i protokollit Raft).
Përveç kësaj, framework-u ofron funksionalitetin e një proxy me mundësi përkrish të endur, i cili nuk është i disponueshëm në Erlang/OTP dhe Elixir. Duke qenë se në gjuhën Go nuk ka një analog direkt të procesit Erlang, framework-u përdor goroutine si bazë për gen.Server me një mbështjellës "recover" për të mundësuar trajtimin e situatave përjashtimore. Kodi i projektit shpërndahet nën licencën MIT.
Rrjeti i protokollit në ErgoFramework implementon plotësisht specifikimin e protokollit DIST të Erlang. Kjo do të thotë se aplikacionet e shkruara në bazë të ErgoFramework punojnë natyrshëm me çdo aplikacion të shkruar në gjuhët e programimit Erlang ose Elixir (shembuj të bashkëveprimit me nodin Erlang). Duhet gjithashtu të theksohet se modeli i dizajnit gen.Stage është implementuar sipas specifikimit të Elixir GenStage dhe është plotësisht i pajtueshëm me të (shembuj implementimi).
Në lëshimin e ri:
- Janë shtuar shabllone të reja
- gen.Web - shabllon dizajni për Web API Gateway (i njohur gjithashtu si Backend For Frontend). Shembull.
- gen.TCP - shabllon që lejon implementimin e një puli akceptorësh për lidhjet TCP me përpjekje minimale në kodim. Shembull.
- gen.UDP - është e ngjashme me shabllonin gen.TCP, vetëm për protokollin UDP. Shembull.
- Eshtë ofruar një funksionalitet i ri Events me implementimin e një autobusi të thjeshtë të ngjarjeve brenda nodit, i cili lejon krijimin e mekanizmave të shkëmbimit të ngjarjeve (pub/sub) midis proceseve lokale. Shembull.
- ĂshtĂ« shtuar mbĂ«shtetje pĂ«r regjistrimin e tipeve, e cila lejon serilizimin/dematerializimin automatik tĂ« mesazheve nĂ« tipin e tĂ« dhĂ«nave nativ tĂ« Golang. Kjo do tĂ« thotĂ« qĂ« nuk Ă«shtĂ« mĂ« e nevojshme tĂ« pĂ«rdoret etf.TermIntoStruct pĂ«r çdo mesazh tĂ« marrĂ«. Tipe tĂ« regjistruar do tĂ« transformohen automatikisht nĂ« tipin e caktuar, çka ndihmon nĂ« rritjen e performancĂ«s sĂ« shkĂ«mbimit tĂ« mesazheve midis nodave tĂ« shpĂ«rndara.
Burimi: opennet.ru
