După un an de dezvoltare, a fost lansat framework-ul Ergo 1.2, care implementează un stack complet de rețea Erlang și biblioteca sa OTP în limbajul Go. Framework-ul oferă dezvoltatorului un set flexibil de instrumente din lumea Erlang pentru a crea soluții distribuite în Go, folosind șabloane de proiectare gata făcute: Application, Supervisor și GenServer. Deoarece în limbajul Go nu există un analog direct al procesului Erlang, în framework sunt utilizate goroutine ca bază pentru GenServer, cu o înveliș recover pentru a permite gestionarea situațiilor excepționale. Codul proiectului este distribuit sub licența MIT.
În noua versiune:
- A fost implementat suport pentru TLS 1.3, cu posibilitatea de auto-generare a certificatelor auto-semnate (dacă este necesară criptarea conexiunilor, dar nu există nevoie de autorizare, deoarece conectarea utilizează cookie-uri pentru a oferi acces la nod).
- A fost adăugată rutarea statică, pentru a exclude apelurile către EPMD pentru a determina portul nodului. Acest lucru ajută la rezolvarea problemelor de securitate și, împreună cu criptarea, permite rularea unui cluster Erlang în rețele publice.
- A fost adăugat un nou șablon GenStage (din lumea Elixir), care permite crearea de soluții Pub/Sub fără utilizarea unui Message Bus. Una dintre caracteristicile importante ale acestui șablon este „controlul backpressure”. „Producerul” va livra exact volumul de mesaje care a fost solicitat de „Consumer”. Un exemplu de implementare poate fi văzut aici.
În secțiunea de discuții se discută despre implementarea șablonului de proiectare SAGAS, care realizează funcționalitatea tranzacțiilor distribuite.
Sursa: opennet.ro
