Efter ett Ärs utveckling slÀpptes ramverket Ergo 1.2, som implementerar ett fullstÀndigt nÀtverksstack av Erlang och dess bibliotek OTP i Go-sprÄket. Ramverket ger utvecklaren ett flexibelt verktyg frÄn Erlang-vÀrlden för att skapa distribuerade lösningar i Go med hjÀlp av fÀrdiga designmönster som Application, Supervisor och GenServer. Eftersom det inte finns nÄgon direkt motsvarighet till Erlang-processen i Go, anvÀnds goroutines som grund för GenServer med en recovery-wrapper för att hantera undantagssituationer. Projektets kod distribueras under MIT-licensen.
I den nya utgÄvan:
- TLS 1.3 har implementerats med möjlighet att autogenerera sjÀlvsignerade certifikat (om det Àr nödvÀndigt att kryptera anslutningar, men ingen auktorisering behövs, eftersom anslutningen anvÀnder cookies för att ge Ätkomst till noden)
- Statisk routning har lagts till för att utesluta anrop till EPMD för att bestÀmma nodens port. Detta löser sÀkerhetsproblemet och, tillsammans med kryptering, möjliggör att köra en Erlang-kluster i offentliga nÀtverk.
- En ny GenStage-mall (frÄn Elixir-vÀrlden) har lagts till som möjliggör att skapa Pub/Sub-lösningar utan att anvÀnda Message Bus. En av de viktiga funktionerna i denna mall Àr 'backpressure control'. 'Producenten' kommer att leverera exakt den mÀngd meddelanden som 'Konsumenten' har begÀrt. Ett exempel pÄ implementation kan ses hÀr.
I diskussionsavsnittet diskuteras implementationen av designmönstret SAGAS, som realiserar funktionaliteten för distribuerade transaktioner.
KĂ€lla: opennet.ru
