High performance, distributed and low latency publish-subscribe platform.
AGPL-3.0 License
Bot releases are hidden (Show)
Main changes:
From the begining, mqtt.go defines a maximum size for a response. However if the limit was met, it resulted in an error and no message was sent. Now, the Query itself limits the size of a frame and messages are sent to the client, but only those whose total size <= to the maximum size of a response.
Implications on the current API: for a subscribe request with a Last=X parameter, the client will receive the last messages whose total size is <= to the max size of a response, with a maximum of X messages. This behavior is an improvement over just getting an error.
The history api allows to retrieve any number of messages stored in a channel. As the number of messages that can return in a single response is limited by the size of a response (as per https://github.com/emitter-io/emitter/pull/413), a system of pagination is required. This system is implemented with the introduction of the StartFromID query parameter. An client that already received a response with a certain number of messages can send a new request to the API with the StartFromID set to the ID of the last message it received. The storage query will then start retreiving messages starting at that ID to provide the API the next page of messages in its response.
This fixes a major bug preventing Emitter instances to start a cluster.
Full Changelog: https://github.com/emitter-io/emitter/compare/v3.0...v3.1
Published by kelindar almost 3 years ago
This release contains various bug fixes and migrates emitter to use badger/v3
as the underlying message storage. This message storage is incompatible with v1
, hence the bump of the major version (breaking change). It also rebases docker to run on Go 1.17
which increases overall throughput.
Full Changelog: https://github.com/emitter-io/emitter/compare/v2.8...v3.0
Published by kelindar over 4 years ago
This release introduces a revamp of how internal state is replicated with gossip along with other, smaller features. The brokers now use durable CRDT map in order to replicate and synchronize internal state (e.g. subscriptions, disallow lists) within the cluster. This enables more reliable cluster and allows us to support more complex features in future, such as cluster-wide last will & testament.
emitter/keyban/
request. The block list is replicated across the cluster and persisted to disk on each broker. In order to specify the directory, use the newly added dir parameter to the cluster configuration section. (#317)v3
with shuffled salsa cipher for better randomness when generating keys (#311).Published by kelindar about 5 years ago
This is v2.769 pre-release which is automatically built on every commit to master.
Published by kelindar over 5 years ago
This release removes private links (normal links are still there) and introduces a way of creating private keys by simply calling keygen
with an "extendable" key (ie. a key with e
permission). On top of that, it has a few optimisations and emitter now defaults to using/generating license v2 which was introduced a few months ago.
Published by kelindar over 5 years ago
This release makes flush and read rate limiting configurable which allows brokers to be more protected against misbehaving clients.