Skip to content

Replace ergo with grpcproc in Concurrency - #90

Merged
floatdrop merged 1 commit into
mainfrom
replace-ergo-with-grpcproc
Sep 27, 2026
Merged

floatdrop merged 1 commit into
mainfrom
replace-ergo-with-grpcproc

Conversation

@floatdrop

Copy link
Copy Markdown
Owner

Why is this project awesome?

grpcproc gives Erlang-style processes (a function over a mailbox, names, calls, monitors, exit reasons) without a second network stack: a node mounts as one more service on the gRPC server the application already runs, so TLS, keepalive and credentials come from the existing DialOptions. Mailboxes are typed by their protobuf message, and an Addr[M] carries that type, so the compiler checks what is sent to a process, local or remote. A wrong type on delivery is a dead letter with reason type, never a panic in the process.

What does it add to the category?

It replaces ergo-services/ergo. Both are actor frameworks modeled on Erlang; ergo runs its own node protocol, port and registrar, with untyped messages, while grpcproc rides on gRPC and protobuf, which is what most Go services already deploy. One actor framework is enough for the category, so ergo goes.

What is lost: ergo ships supervision trees and Erlang node interop. grpcproc has monitors and exit reasons but no supervisors; a process and its children do not exit together. Restart policy is left to the caller.

Checklist

  • I added exactly one file under entries/ or links/ (or this is a removal or a fix).
  • The repository is at least 3 months old, not archived, not a fork, has a license, and is written in Go.
  • The description says what the project does, starts uppercase, ends with a period, and avoids marketing words.
  • I ran go run ./cmd/awesome fmt && go run ./cmd/awesome validate and both passed.
  • I did not touch README.md, metadata.json, docs/ or badges/; they are generated.

On the unchecked box: the repository was created on 2026-09-26 and has 0 stars, so it misses both the 90-day age and 200-star thresholds. The entry carries "exempt": ["age", "stars"], following floatdrop/di, floatdrop/moq-go and floatdrop/fsm. It displaces ergo, a 4.7k-star podium entry, so this is the maintainer's own new project taking an established one's place and deserves to be called out rather than buried in the diff. It is MIT licensed, not a fork, not archived, and Go; validate -remote passes all 51 repositories.

🤖 Generated with Claude Code

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown
Contributor

What is already listed in the category

An entry earns its place by covering something no listed project does, or by doing it better. For the reviewer:

floatdrop/grpcproc joins Concurrency:

  • alitto/pond ★ 2.2k — Bounded worker pool with generics, result groups, context cancellation and subpools.

@floatdrop
floatdrop merged commit ab2b9a0 into main Sep 27, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant