ratus
NATS
ratus | NATS | |
---|---|---|
12 | 11 | |
104 | 5,225 | |
2.9% | 1.7% | |
8.3 | 9.0 | |
18 days ago | 4 days ago | |
Go | Go | |
Apache License 2.0 | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
ratus
-
Ratus - a RESTful asynchronous task queue server.
The Go ecosystem has many brilliant distributed task queue libraries, but sometimes we still have to settle for some bloated cross-platform solution in order to work with components written in other languages. To solve this problem, we created Ratus, which is a service, not a library. It translated concepts of distributed task queues into a set of resources that conform to REST principles and provides an easy-to-use HTTP API. Ratus is implemented in Go, and comes with a Go client library. Asynchronous task queues are typically used for long-running background tasks, so the overhead of the HTTP API is not significant compared to the time spent by the tasks themselves. On the other hand, the HTTP-based RESTful API can be easily accessed by all languages without using dedicated client libraries.
-
Ratus: RESTful asynchronous task queue server
To solve this problem, we created Ratus, which is a service, not a library. It translated concepts of distributed task queues into a set of resources that conform to REST principles and provides an easy-to-use HTTP API. Ratus is implemented in Go, and comes with a Go client library. The current default storage engine is MongoDB (in-memory store coming soon), we will also try to integrate existing Go task queue libraries.
- Show HN: Ratus – RESTful asynchronous task queue server
-
Golang task queue
I've been working on https://github.com/hyperonym/ratus which is a RESTful asynchronous task queue server, it also comes with a Go client library.
NATS
- High-Performance server for NATS.io, the cloud and edge native messaging system
- Asyncapi with Go
-
What is the coolest Go open source projects you have seen?
nats: Golang client for NATS, the cloud native messaging system
-
Distributed communication patterns with NATS
Install the nats.go package
- Redis vs. Kafka vs. RabbitMQ
-
Distributed messaging with NATS
Now that our NATS server is running, we'll be using Go and Node.js clients to connect to it for simple demonstration. Not familiar with Go or Node? Don't worry NATS has clients available in over 40 languages!
- How do I build a text editor like notepad using wails
-
Plugins vs Microservices
You can build monolith applications and if they need cross communication, rely on something like Nats: https://github.com/nats-io/nats.go
- Modern Communication: Sockets
-
Subscription management in pub/sub system
You could start by looking/reading how it is implemented in production ala https://github.com/nats-io/nats.go
What are some alternatives?
taskrunner - :peach: a configurable task runner written in go
nsq - A realtime distributed messaging platform
tork - A distributed workflow engine
Centrifugo - Scalable real-time messaging server in a language-agnostic way. Self-hosted alternative to Pubnub, Pusher, Ably. Set up once and forever.
Asynq - Simple, reliable, and efficient distributed task queue in Go
EventBus - [Go] Lightweight eventbus with async compatibility for Go
guble - websocket based messaging server written in golang
go-nsq - The official Go package for NSQ
taskq - Golang asynchronous task/job queue with Redis, SQS, IronMQ, and in-memory backends
dbus - Native Go bindings for D-Bus
go-events - :mega: Pure nodejs EventEmmiter for the Go Programming Language.
emitter - Emits events in Go way, with wildcard, predicates, cancellation possibilities and many other good wins