Repository navigation
Conversation
Contributor
Author
|
Please add any feedback for this pull request. I tried to follow the existing coding style & conventions. |
Member
|
Great job @slashdotdash, we appreciate it! I don't like the fact that new Extreme connection needs to be started for persistent subscription but I understand that's up to EventStore itself. |
Contributor
Author
|
Thanks for merging this. Yes, the connection per persistent subscription is a due to how the Event Store tracks active consumers. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Event Store provides an alternate event subscription model, from version 3.2.0, known as competing consumers. Instead of the client holding the state of the subscription, the server remembers it.
This pull request adds support for creating a new persistent connection and connecting a subscriber to a persistent connection. Additional unit tests have been included to demonstrate and verify these new features.
Each persistent subscription runs as a separate GenServer process,
Extreme.PersistentSubscription, and creates its own connection to the Event Store. This is due to the way that the Event Store tracks active consumers for a persistent subscription by connection. It is not possible to reuse a single connection to reconnect to a subscription if the subscriber process terminates. The connection must close to notify the Event Store that the consumer is dead. Then it will allow a new connection to the subscription.It includes a breaking change. The module
Extreme.Messageshas been renamed toExtreme.Msg. This is due to the persistent connection messages in the Protocol Buffers definition creating an Elixir module name that exceeds the 100 character limit support for creating Erlang releases.I have incremented the mix release version to
0.9.0.