Skip to content

v0.33.0

Compare
Choose a tag to compare
@FZambia FZambia released this 27 Jul 11:05
· 22 commits to master since this release
c8d3d36

What's Changed

v0.33.0 is a quite massive release of Centrifuge. To highlight some important changes:

  • Delta compression support based on Fossil algorithm. It already serves as Centrifugo feature. Only Javascript SDK (centrifuge-js) supports it for now. Example of usage may be found in Compression playground which was created to evaluate the feature. BTW check out blog post Experimenting with real-time data compression by simulating a football match events which describes the experiment and possible benefits of delta compression in channels – in some cases it can reduce bandwidth dramatically.
  • Support Cache Recovery Mode – a mode in which recovery only restores the latest message in channel. It makes Centrifugo channels to work kind of real-time cache. More motivation can be found in Centrifugo docs - where this feature is already available for some time. With this release users of Centrifuge library can inherit the feature also. See example which demonstrates the usage.
  • Several new helpful metrics were added for greater observability of Centrifuge-based servers (see below)
  • Work on connection and server performance and stability - fixed a couple of possible panics, also race condition which could lead to the incorrect number of clients/subscribers on node, several performance improvements for WebSocket Upgrade process.
  • Options to use multiple brokers and presence managers open a new dimension of flexibility – new way to scale, new way to have different channel properties in different channels within one Centrifuge-based servers cluster.
  • And much more actually, see full changelog below. BTW join our communities if you need any help with the changes.

Now all changes included into v0.33.0 release:

  • chore: fix some typos in comment by @peicuiping in #377
  • Use SliceData and StringData for bytes <-> string conversion by @FZambia in #378
  • Prepared message cache for compression, websocket upgrade performance improvements by @FZambia in #376
  • Cache recovery mode, delta encoding, channel medium layer by @FZambia in #348
  • Option to send server time in connect result by @FZambia in #379
  • Support server time in unidirectional case by @FZambia in #381
  • Add server unsubscribes metric by @FZambia in #383
  • Add example of real-time document sync by @FZambia in #384
  • Option to mark positioned clients with insufficient state if publication lag exceeds threshold by @FZambia in #385
  • Integration tests with DragonflyDB, drop testing with Redis 5 by @FZambia in #386
  • Fix panic on already subscribed error by @FZambia in #390
  • Options to use multiple brokers and presence managers by @FZambia in #394
  • Prevent connection deadlock and improper subscribers count by @FZambia in #395
  • Add centrifuge_client_ping_pong_duration_seconds histogram by @FZambia in #396
  • transport label for ping_pong_duration_seconds by @FZambia in #397
  • Pin to rueidis version without panic due to client use after recycled by @FZambia in #400

New Contributors

❯ gorelease -base v0.32.2 -version v0.33.0
# github.com/centrifugal/centrifuge
## incompatible changes
BrokerEventHandler.HandlePublication: changed from func(string, *Publication, StreamPosition) error to func(string, *Publication, StreamPosition, bool, *Publication) error
## compatible changes
(*Node).HandleControl: added
(*Node).HandleJoin: added
(*Node).HandleLeave: added
(*Node).HandlePublication: added
(*Node).OnCacheEmpty: added
CacheEmptyEvent: added
CacheEmptyHandler: added
CacheEmptyReply: added
ChannelMediumOptions: added
Config.ClientChannelPositionMaxTimeLag: added
Config.ClientConnectIncludeServerTime: added
Config.GetBroker: added
Config.GetChannelMediumOptions: added
Config.GetPresenceManager: added
DeltaType: added
DeltaTypeFossil: added
Publication.Channel: added
Publication.Time: added
PublishOptions.UseDelta: added
RecoveryMode: added
RecoveryModeCache: added
RecoveryModeStream: added
SubscribeOptions.AllowedDeltaTypes: added
SubscribeOptions.RecoveryMode: added
WebsocketConfig.CompressionPreparedMessageCacheSize: added
WithDelta: added
WithRecoveryMode: added

# summary
v0.33.0 is a valid semantic version for this release.

Full Changelog: v0.32.2...v0.33.0