Replace ergo with grpcproc in Concurrency - #90
Merged
Merged
Conversation
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Contributor
What is already listed in the categoryAn entry earns its place by covering something no listed project does, or by doing it better. For the reviewer: floatdrop/grpcproc joins Concurrency:
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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 anAddr[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 reasontype, 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
entries/orlinks/(or this is a removal or a fix).go run ./cmd/awesome fmt && go run ./cmd/awesome validateand both passed.README.md,metadata.json,docs/orbadges/; 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"], followingfloatdrop/di,floatdrop/moq-goandfloatdrop/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 -remotepasses all 51 repositories.🤖 Generated with Claude Code