Dopo un anno di sviluppo, è stato rilasciato il framework Ergo 1.2, che implementa un completo stack di rete Erlang e la sua libreria OTP nel linguaggio Go. Il framework offre agli sviluppatori un toolkit flessibile dal mondo Erlang per creare soluzioni distribuite in Go mediante modelli di design Application, Supervisor e GenServer. Poiché nel linguaggio Go non esiste un analogo diretto del processo Erlang, il framework utilizza goroutine come base per GenServer con un wrapper di recupero per gestire le eccezioni. Il codice del progetto è distribuito sotto licenza MIT.
Nel nuovo rilascio:
- È stata implementata la supporto per TLS 1.3 con la possibilità di generare automaticamente certificati self-signed (se è necessario crittografare le connessioni, ma non c'è bisogno della loro autorizzazione, poiché la connessione utilizza i cookie per fornire accesso al nodo)
- È stata aggiunta la routing statica per escludere la richiesta a EPMD per la determinazione della porta del nodo. Ciò risolve il problema di sicurezza e, insieme alla crittografia, consente di eseguire un cluster Erlang in reti pubbliche.
- È stato aggiunto un nuovo modello GenStage (dal mondo Elixir), che consente di creare soluzioni Pub/Sub senza utilizzare un Message Bus. Una delle caratteristiche importanti di questo modello è il "backpressure control". Il "Producer" fornirà esattamente il volume di messaggi richiesto dal "Consumer". Un esempio di implementazione può essere visto qui.
Nella sezione discussioni si parla dell'implementazione del modello di design SAGAS, che realizza la funzionalità delle transazioni distribuite.
Fonte: opennet.ru
