Skip to content

v2.8

Compare
Choose a tag to compare
@kelindar kelindar released this 04 Jun 16:57
· 28 commits to master since this release
f8ffc5e

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.

Changelog

  • Added support to block or unblock keys. This can be done using 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)
  • Fixed a bug with frame iteration (#282).
  • Fixed alignment of int64, to be able to access it with atomic.LoadInt64 (#294).
  • Fixed the panic when received a corrupt/bad MQTT packet (#305) (#308).
  • Fixed an issue where presence events could be received with an extension key (#295).
  • Limit the gossip broadcast message size to a random set of 100K subscriptions, in order to make sure that the maximum message size is under 10MB. Exceeding this limit would cause peers to be disconnected from the cluster. (#312)
  • Fixed the issue when presence notifications would not be sent when a node goes down (#304) (#313).
  • Refactored gossip state and cluster-wide survey (#314) (#315)
  • Changed the license to v3 with shuffled salsa cipher for better randomness when generating keys (#311).
  • Changed the local CRDT set durable and can potentially be persisted to disk going forward. The incoming sets are now called "volatile" and implemented using Golang map. (#316)
  • Changed the current CRDT set to a key/value dictionary, adds more tests around it and other changes to serialization. This is the necessary plumbing to allow for cluster-global state which is replicated with gossip (#310) (#320).