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

InfluxDB – Built for High-Performance Time Series Workloads
InfluxDB 3 OSS is now GA. Transform, enrich, and act on time series data directly in the database. Automate critical tasks and eliminate the need to move data externally. Download now.
www.influxdata.com
featured
Sevalla - Deploy and host your apps and databases, now with $50 credit!
Sevalla is the PaaS you have been looking for! Advanced deployment pipelines, usage-based pricing, preview apps, templates, human support by developers, and much more!
sevalla.com
featured
  1. ergo

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

  2. InfluxDB

    InfluxDB – Built for High-Performance Time Series Workloads. InfluxDB 3 OSS is now GA. Transform, enrich, and act on time series data directly in the database. Automate critical tasks and eliminate the need to move data externally. Download now.

    InfluxDB logo
  3. examples

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

    The examples are in another repo:

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

  4. 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.

  5. 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...

  6. 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

  7. 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

  8. 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?

  9. Sevalla

    Deploy and host your apps and databases, now with $50 credit! Sevalla is the PaaS you have been looking for! Advanced deployment pipelines, usage-based pricing, preview apps, templates, human support by developers, and much more!

    Sevalla logo
  10. 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

  11. .NET Runtime

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

  12. asyncmachine-go

    Batteries-included graph control flow library (AOP, actor model, state-machine)

    > 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
  • Aspire Roadmap 2025: Code-first DevOps, polyglot, and AI

    1 project | dev.to | 1 Aug 2025
  • Show HN: AI-gent Workflows – locally reasoning AI Agents

    1 project | news.ycombinator.com | 26 Jun 2025

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