نسخه بعدی ErgoFramework 2.2 با پیاده سازی کامل پشته شبکه Erlang و کتابخانه OTP آن به زبان Go انجام شد. این چارچوب ابزارهای انعطافپذیری از دنیای Erlang برای ایجاد راهحلهای توزیعشده به زبان Go با استفاده از الگوهای طراحی همهمنظوره آماده gen.Application، gen.Supervisor و gen.Server، و همچنین موارد تخصصی - gen. مرحله (میخانه توزیع شده/زیر)، جنرال ساگا (تراکنش های توزیع شده، اجرای الگوی طراحی SAGA) و gen.Raft (پیاده سازی پروتکل Raft).
علاوه بر این، این چارچوب عملکرد پروکسی را با رمزگذاری سرتاسر ارائه میکند که در Erlang/OTP و Elixir موجود نیست. از آنجایی که زبان Go مشابهی مستقیم با فرآیند Erlang ندارد، این فریم ورک از گوروتین ها به عنوان پایه ای برای gen.Server با یک پوشش بازیابی برای رسیدگی به موقعیت های استثنا استفاده می کند. کد پروژه تحت مجوز MIT توزیع شده است.
پشته شبکه در ErgoFramework به طور کامل مشخصات DIST پروتکل Erlang را پیاده سازی می کند. این بدان معنی است که برنامه های نوشته شده بر اساس ErgoFramework به صورت بومی با هر برنامه ای که به زبان های برنامه نویسی Erlang یا Elixir نوشته شده است کار می کند (نمونه ای از تعامل با گره Erlang). همچنین شایان ذکر است که الگوی طراحی gen.Stage با توجه به مشخصات Elixir GenStage پیاده سازی شده و با آن سازگاری کامل دارد (نمونه پیاده سازی).
در نسخه جدید:
- قالب های جدید اضافه شد
- gen.Web یک الگوی طراحی Web API Gateway (همچنین به عنوان Backend For Frontend شناخته می شود) است. مثال.
- gen.TCP قالبی است که به شما امکان می دهد مجموعه ای از پذیرندگان اتصال TCP را با حداقل تلاش در نوشتن کد پیاده سازی کنید. مثال.
- gen.UDP - مشابه الگوی gen.TCP، فقط برای پروتکل UDP. مثال.
- یک عملکرد رویدادهای جدید با پیاده سازی یک گذرگاه رویداد ساده در داخل یک گره پیشنهاد شده است که به شما امکان می دهد مکانیسم هایی برای تبادل رویدادها (pub/sub) در بین فرآیندهای محلی ایجاد کنید. مثال.
- اضافه شدن پشتیبانی برای ثبت نوع، که امکان سریالسازی/آسیالزدایی خودکار پیامها را در یک نوع داده بومی Golang میدهد. این بدان معناست که دیگر نیازی به استفاده از etf.TermIntoStruct برای هر پیام دریافتی ندارید. انواع ثبت شده به طور خودکار به نوع مشخص شده تبدیل می شوند که به طور قابل توجهی عملکرد تبادل پیام بین گره های توزیع شده را افزایش می دهد.
منبع: opennet.ru