Efter et års udvikling er rammeværket Ergo 1.2 blevet frigivet, som implementerer den komplette netværksstak for Erlang og dens bibliotek OTP i Go-sproget. Rammeværket giver udvikleren et fleksibelt værktøj fra Erlangs verden til at skabe distribuerede løsninger i Go ved hjælp af færdige designmønstre som Application, Supervisor og GenServer. Da Go-sproget ikke har en direkte analog til Erlang-processen, anvendes goroutines i rammeværket som basis for GenServer med en recover-wrapper for mulighed for håndtering af undtagelsessituationer. Projektets kode distribueres under MIT-licensen.
I den nye version:
- Understøttelsen af TLS 1.3 er blevet implementeret med mulighed for automatisk at generere selvsignerede certifikater (hvis det er nødvendigt at kryptere forbindelser, men der ikke er behov for autorisation, da forbindelsen bruger cookies til at give adgang til noden).
- Statisk routing er blevet tilføjet for at udelukke anmodninger til EPMD for at bestemme nodens port. Dette løser sikkerhedsproblemet og giver mulighed for at køre en Erlang-kluster på offentlige netværk sammen med kryptering.
- Et nyt GenStage-mønster (fra Elixir-verdenen) er blevet tilføjet, hvilket muliggør oprettelse af Pub/Sub-løsninger uden brug af Message Bus. En af de vigtigste funktioner i dette mønster er 'backpressure control'. 'Producenten' vil levere præcis det antal beskeder, der er blevet anmodet af 'Forbrugeren'. Eksemplet på implementeringen kan ses her.
I diskussionsafsnittet diskuteres implementeringen af designmønsteret SAGAS, som implementerer funktionaliteten af distribuerede transaktioner.
Kilde: opennet.ru
