Ergo: Erlang-inspired event driven actor framework in Go

This page summarizes the projects mentioned and recommended in the original post on news.ycombinator.com

SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  • ergo

    An actor-based Framework with network transparency for creating event-driven architecture in Golang. Inspired by Erlang. Zero dependencies.

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
  • examples

    examples for demonstrating Ergo Framework features (by ergo-services)

    The examples are in another repo:

    https://github.com/ergo-services/examples

  • laborunion

    Dynamic Worker Pool Library

    I have been watching Ergo repo for a while now and you wrote my observation concisely.

    A while back, I tried to solve no.2 on your list by having a dynamically expanding and shrinking go-routines. POC here: https://github.com/didip/laborunion. It is meant to be used in-conjunction with config library & application object that's update-able over the wire. But I never got around to solve that last part.

  • redwood

    A highly-configurable, distributed, realtime database that manages a state tree shared among many peers. (by brynbellomy)

    with that said it’s quite easy to write an equivalent- https://github.com/redwood/redwood/blob/develop/utils/mailbo...

  • Akka.net

    Canonical actor model implementation for .NET with local + distributed actors in C# and F#.

    No per-process GC (still very configurable unlike the one here) but for hot-reload, if you don't mind completely different language, there are https://github.com/akkadotnet/akka.net and https://github.com/dotnet/orleans

  • Orleans

    Cloud Native application framework for .NET

    No per-process GC (still very configurable unlike the one here) but for hot-reload, if you don't mind completely different language, there are https://github.com/akkadotnet/akka.net and https://github.com/dotnet/orleans

  • protoactor-go

    Proto Actor - Ultra fast distributed actors for Go, C# and Java/Kotlin

    My go to actor framework for golang has always been https://github.com/asynkron/protoactor-go. It seems that both protoactor and ergo are heavily influenced by Erlang. Why would one select ergo over protoactor?

  • Oragono

    A modern IRC server (daemon/ircd) written in Go.

    Not to be confused with ergo, the ircd[0] nor with ergo, the cryptocurrency[1]

    [0] https://github.com/ergochat/ergo

    [1] https://github.com/ergoplatform

  • .NET Runtime

    .NET is a cross-platform runtime for cloud, mobile, desktop, and IoT apps.

  • asyncmachine-go

    non-blocking state machine for workflows

    > you cannot send messages directly to a goroutine

    Goroutines communicate through channels, all you need is a queue (eg buffered chan).

    > you cannot terminate a goroutine from another goroutine

    Termination is propagated via context cancellation. go-A cancels ctx, go-B waits with `select`, reads from `<-ctx.Done()` and does a `return`, or checks it after each blocking call.

    > there are no "goroutine-local variables"

    Not sure if I got this one, but every var in a function's scope, which has been `go`-routined, would qualify.

    I'm currently working on a lib/framework somehow related to Ergo, but taking a more "generic" approach of a state machine[0]. It may solve some of the mentioned issues with Go, like addressing and queues for communication.

    You seem to be very attached to an idea of using the same goroutine for a long time, whereas it's usually more dynamic and only schedulers are long lived `go`-s.

    [0]: https://github.com/pancsta/asyncmachine-go

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • go-actor: Tiny library for writing concurrent programs in Go using actor model

    2 projects | /r/golang | 16 Aug 2022
  • How “let it fail” leads to simpler code

    3 projects | news.ycombinator.com | 13 Jul 2022
  • Ask HN: How to 100% enable remote infrastructure?

    1 project | news.ycombinator.com | 29 Apr 2021
  • CRLF is obsolete and should be abolished

    4 projects | news.ycombinator.com | 13 Oct 2024
  • Aspire: Cloud-Ready .NET Stack for Building Observable Distributed Apps

    1 project | news.ycombinator.com | 5 Oct 2024

Did you konow that Go is
the 4th most popular programming language
based on number of metions?