New release of the Ergo 1.2 framework for creating network applications

After a year of development, the Ergo 1.2 framework was released, implementing the complete Erlang networking stack and its OTP library in the Go language. The framework provides the developer with a flexible toolkit from the Erlang world for creating distributed solutions in the Go language using ready-made Application, Supervisor and GenServer design patterns. Since the Go language does not have a direct analogue of the Erlang process, the framework uses goroutines as the basis for GenServer with a recover wrapper to be able to handle exceptions. The project code is distributed under the MIT license.

In the new release:

  • Implemented support for TLS 1.3 with the ability to auto-generate self-signed certificates (if you need to encrypt connections, but there is no need to authorize it, since the connection uses cookies to provide access to the host)
  • Added static routing to avoid having to call EPMD to determine host port. This solves the security problem and, together with encryption, makes it possible to run an Erlang cluster on public networks.
  • A new GenStage template (from the Elixir world) has been added that allows you to create Pub / Sub solutions without using the Message Bus. One of the important features of this template is "backpressure control". "Producer" will deliver exactly the volume of messages requested by "Consumer." An implementation example can be found here.

The discussion section discusses the implementation of the SAGAS design pattern that implements distributed transaction functionality.

Source: opennet.ru

Add a comment