Na een jaar ontwikkeling is de release van het Ergo 1.2-framework, dat de volledige netwerkstack van Erlang en zijn OTP-bibliotheek implementeert in de programmeertaal Go. Het framework biedt ontwikkelaars een flexibele toolkit uit de wereld van Erlang voor het creƫren van gedistribueerde oplossingen in Go met behulp van kant-en-klare ontwerpsjablonen zoals Application, Supervisor en GenServer. Aangezien er in Go geen directe tegenhanger van het Erlang-proces bestaat, worden goroutines in het framework gebruikt als basis voor GenServer met een recover-wrapper voor het afhandelen van uitzonderingssituaties. De projectcode wordt verspreid onder de MIT-licentie.
In de nieuwe release:
- Ondersteuning voor TLS 1.3 is geĆÆmplementeerd met de mogelijkheid voor het autonoom genereren van zelfondertekende certificaten (indien nodig om verbindingen te versleutelen, maar zonder de noodzaak van autorisatie, aangezien de verbinding cookies gebruikt om toegang tot de node te bieden)
- Statische routering is toegevoegd om het aanspreken van EPMD voor het bepalen van de nodepoort te vermijden. Dit lost een beveiligingsprobleem op en maakt, samen met versleuteling, het mogelijk om een Erlang-cluster op openbare netwerken te draaien.
- Een nieuw GenStage-sjabloon (uit de wereld van Elixir) is toegevoegd, waarmee Pub/Sub-oplossingen kunnen worden gebouwd zonder een Message Bus. Een van de belangrijke kenmerken van dit sjabloon is 'backpressure control'. De 'Producer' zal precies het aantal berichten leveren dat door de 'Consumer' is aangevraagd. Een voorbeeldimplementatie is hier te bekijken.
In het discussieforum wordt de implementatie van het ontwerpsjabloon SAGAS besproken, dat de functionaliteit van gedistribueerde transacties realiseert.
Bron: opennet.ru
