Po roku rozwoju wydano framework Ergo 1.2, implementujący pełny stos sieciowy Erlang i jego bibliotekę OTP w języku Go. Framework udostępnia programiście elastyczne narzędzia ze świata Erlanga do tworzenia rozproszonych rozwiązań w języku Go z wykorzystaniem gotowych wzorców projektowych Application, Supervisor i GenServer. Ponieważ język Go nie ma bezpośredniego odpowiednika procesu Erlang, framework wykorzystuje goroutines jako podstawę dla GenServera z opakowaniem odzyskiwania do obsługi sytuacji wyjątkowych. Kod projektu jest rozpowszechniany na licencji MIT.
W nowym wydaniu:
- Zaimplementowano obsługę TLS 1.3 z możliwością automatycznego generowania certyfikatów z podpisem własnym (jeśli chcesz szyfrować połączenia, ale nie ma potrzeby autoryzacji, ponieważ połączenie wykorzystuje plik cookie w celu zapewnienia dostępu do hosta)
- Dodano routing statyczny, aby wyeliminować potrzebę polegania na EPMD w celu ustalenia portu hosta. Rozwiązuje to problem bezpieczeństwa i wraz z szyfrowaniem umożliwia uruchomienie klastra Erlang w sieciach publicznych.
- Dodano nowy szablon GenStage (ze świata Elixir), który umożliwia tworzenie rozwiązań Pub/Sub bez korzystania z Message Bus. Jedną z ważnych cech tego szablonu jest „kontrola przeciwciśnienia”. „Producent” dostarczy dokładnie taką ilość wiadomości, jakiej zażądał „Konsument”. Przykładową realizację można znaleźć tutaj.
W części dyskusyjnej omówiono implementację wzorca projektowego SAGAS, który implementuje funkcjonalność transakcji rozproszonych.
Źródło: opennet.ru