All Versions
Latest Version
Avg Release Cycle
49 days
Latest Release
2021 days ago

Changelog History
Page 2

  • v0.4.1 Changes

    • โช Reverting reaping faulty nodes feature temporarily while investigate backwards compatibility issues.
  • v0.4.0 Changes

    • ๐Ÿ”‹ Feature: Faulty nodes are now automatically reaped from nodes' membership lists after (24 hours by default). #123
    • ๐Ÿ†• New options for controlling suspect and reaping times. #123
    • โž• Add new Ready and Destroyed events to ringpop. #125
    • โž• Add additional logging to bring ringpop-go on par with ringpop-node log messages. #116
    • ๐Ÿ›  Fix bug where Ringpop automatically added itself to the bootstrap hosts for host-based bootstrapping, but not other bootstrapping methods. #120
    • ๐Ÿ›  Fix race condition where membership and hashring could be inconsistent with each other. #112
    • โœ‚ Remove File and Host options from bootstrap options in favor of DiscoverProvider interface. #120
    • โž• Add Go 1.6 to testing on CI

    ๐Ÿš€ Release notes

    ๐Ÿ”– Version incompatibility in protocol

    Since 0.4.0 introduces a new node/member state, 0.4.0 is not backwards-compatible with previous versions.

    โฌ†๏ธ Note rolling upgrades with older versions do work, but undefined behaviour will occur if two versions run in parallel for longer than the FaultyPeriod (default 24 hours).

    ๐Ÿ”„ Changes to Bootstrap

    ๐Ÿš€ This release contains a breaking change to the options provided to the ringpop.Bootstrap call.

    BootstrapOptions.File and BootstrapOptions.Hosts have been replaced with BootstrapOptions.DiscoverProvider. DiscoverProvider is an interface which requires a single method:

    type DiscoverProvider interface {
        Hosts() ([]string, error)

    Ringpop comes with DiscoverProviders for the previous File and Hosts options out of the box.

    โฌ†๏ธ To upgrade if you were previously using File:

    +       ""
    -       bootstrapOpts.File = *hostfile
    +       bootstrapOpts.DiscoverProvider = jsonfile.New(*hostfile)

    For static Hosts:

    +       ""
    -       bootstrapOpts.Hosts = []string{"", ""}
    +       bootstrapOpts.DiscoverProvider = statichosts.New("", "")
  • v0.3.0 Changes

    • ๐Ÿ›  Fix "keys have diverged" forwarding error for retries #69
    • ๐Ÿ›  Fix possible race in disseminator #86
    • ๐Ÿ›  Fix possible issue with leave state not being applied correctly #94
    • ๐Ÿ›  Fix issues where unnecessary full syncs could occur #95, #97
    • ๐Ÿ‘Œ Improvements to join:
      • Join retries now have exponential backoff #68
      • Improved resilience to possible partitions at startup #65
      • Reduce network chatter on join #85
    • ๐ŸŽ Hashring performance improvements (see discussion on #58) #58
    • ๐ŸŒฒ Revamped logging; new logger options #83
    • ๐Ÿ†• New stats to aid partition detection #92, #104
    • ๐Ÿ‘Œ Improved test coverage across the board
    • โšก๏ธ Update and test with latest TChannel (v1.0.3) #103
    • โœ… Various fixes and improvements to test infrastructure
  • v0.2.3 Changes

    • ๐Ÿ›  Fix retry mechanism for forwarded requests. When multiple keys are forwarded and a retry is attempted, the retry would fail with a "key destinations have diverged" error.
  • v0.2.2 Changes

    • ๐Ÿ›  Fix goroutine leakage on forwarded requests that time out
  • v0.2 Changes

    • โž• Add Thrift forwarding support #31
    • โž• Add Ringpop.Ready() #32
    • โž• Add Ringpop.GetReachableMembers() and Ringpop.CountReachableMembers() #29
    • โž• Add Ringpop.Forward() #26
    • Lazy initialization and identity autodetection #40
    • ๐Ÿ‘Œ Improve stats and bring them in-line with those emitted by ringpop-node #46
    • Automatically add self to bootstrap list #41
    • ๐Ÿ‘Œ Improve HashRing API #38
    • ๐Ÿ‘Œ Improve tests #35
    • ๐Ÿ‘Œ Improve constructor options pattern for Ringpop #33
    • Disable TChannel retries and zipkin tracing #28
    • ๐Ÿ›  Fix headers sent with forwarded requests #22

    ๐Ÿš€ Release notes

    ๐Ÿš€ There are a significant number of breaking changes in this release:

    • ๐Ÿ“š Ringpop constructor has been renamed from Ringpop.NewRingpop to ringpop.New(app string, opts ...Option) and now accepts optional functional arguments. See the package documentation for a list of options.
    • ๐Ÿšš ringpop.Bootstrap now accepts swim.BootstrapOptions. ringpop.BootstrapOptions has been removed.
    • Many public methods now return an error if they are called before the ring is bootstrapped. Signatures for the changed methods are:
      • Bootstrap(opts *swim.BootstrapOptions) ([]string, error)
      • Checksum() (uint32, error)
      • Lookup(key string) (string, error)
      • LookupN(key string, n int) ([]string, error)
      • Uptime() (time.Duration, error)
      • WhoAmI() (string, error)
    • โœ‚ Removed public method ringpop.Destroyed(). Use the new ringpop.Ready() to determine if the ring is ready or not.
    • ๐Ÿ“ฆ Events moved to package. This includes:
      • EventListener
      • RingChangedEvent
      • RingChecksumEvent
      • LookupEvent
    • The behaviour of creating a single-node cluster has changed. Calling Bootstrap() with no bootstrap file or hosts will now cause Ringpop to create a single-node cluster.
  • v0.1 Changes

    • ๐ŸŽ‰ Initial public release