CHANGELOG.md in salesforce_streamer-2.0.0 vs CHANGELOG.md in salesforce_streamer-2.1.0

- old
+ new

@@ -1,9 +1,41 @@ # Changelog Sorted so that the most recent change logs are near the top. Only significant changes are logged in the change log. +## 2020-08-17 Scott Serok [scott@renofi.com](mailto:scott@renofi.com) + +v2.1 changes the expected interface of `Configuration#replay_adapter`. + +Normally this breaking change would require a major version bump, but since the +functionality today is quiet broken we can call this a major bug fix. + +The `config.replay_adapter` should be an object that has an interface like Hash. +It must respond to `[]` and `[]=`. By default the adapter is an empty hash. If +you want your push topic replayId to persist between restarts, then you should +implement a class with an appropriate interface. + +```ruby +class MyReplayAdapter + def [](channel) + MyPersistence.get(channel) + end + + def []=(channel, replay_id) + MyPersistence.set(channel, replay_id) + end +end +``` + +This change was sparked by a misunderstanding of the +`Restforce::Concerns::Streaming::ReplayExtension` replay handlers. +SalesforceStreamer can eliminate some complexity and fix a bug by delegating the +responsibility of maintaining the current replayId to that ReplayExtension. The +object will be used on each request/response cycle to record and read the latest +replayId as long as the object assigned to `config.replay_adapter` responds to +`[]` and `[]=`. + ## 2020-08-04 Scott Serok [scott@renofi.com](mailto:scott@renofi.com) v2.0 is released as a major simplification of this library. There are 2 significant differences from a user's perspective.