Move to crypton-connection
to 0.3.1.
Bump aeson
to >= 2.
- Update EventStore website link in documentation.
- Internal: Refactor operation and registry tcp internals.
- Introduces
MonitoringBackend
to stop relying exclusively onekg-core
. - Supports GHC 8.8.*.
- Exposes a stream processing interface for subscriptions.
- Add
Pinned
system consumer strategy.
- Bug fix: Driver could end in a situation where it receives a close-connection message during Authentication/Identification phase. Close-connection message was wrongly ignored letting pending operations unanwsered at call-site. If the user forced the result of an operation, it could have lead the current thread to block indefinately. The client state-machine switched to a wrong state.
- Better encoding of streaming interface ReadError.
- Expose more internal functions of the streaming interface.
- Internal: Reset heartbeat tracking on force reconnect request.
- Bug fix: Increment package number unless connection is init or closed (prevent false heartbeat timeout).
- Bug fix: Was also using
s_heartbeatInterval
value fors_heartbeatTimeout
causing false heartbeat timeout exceptions. - Bug fix: Stop trying to reconnect to the most recent node that failed (cluster connection mode).
- Discard
machines
dependency. - Remove
connection
upper bound version.
- Fix possible connection issues if Authentication or Identification processes takes too long to complete.
- No longer terminate the connection in case of
IdentificationTimeout
.
- Fix ACL JSON (de)serialization.
- Fix rare situation where the user send a command before the connection with the
server is available, causing that operation to be sent only after
s_operationTimeout
milliseconds. - Fix "thread blocked indefinitely in an STM transaction" error when failed to create a connection with the server and exceeded the maximun attempt count.
- Fix: Cluster connection, in the discovery process using gossip seed, we try for the next seed if the current one is unreachable.
- Bump
http-client
version.
- Introduce a type-safe
EventNumber
setting. - Introduce a type-safe
ResolveLink
setting. - Support GHC 8.6 but drop GHC < 8.
- Refactor
Slice
api. - Implement a stream-processing interface.
- typeful stream id representation.
- Uniform batch-read and subscription interface.
- Update package metadata information.
- Bump
aeson
version.
- Fix compilation on GHC 8.4
- Remove
text-format
dependency.
- Aeson bump version.
- Fix connection-manager connection reference. The issue was the client was starting to send requests to server even if the confirmation hasn't been confirmed yet.
- Supports GetEventStore >= 4.0.0 protocol changes.
- No longer support GetEventStore < 4.0.0.
- Stream versions are
Int64
.
- Support SemVer versioning.
- Support GHC 8.2.1.
- Support Stackage LTS 9.
- Discard version restriction on
hashable
library.
- Overall internal components refactoring.
- Decrease memory pressure by 10 folds.
- Improve general performance.
- Provide proper logging support using
fast-logger
library. - Support operation timeout detection.
- Detects if the server is overwhelmed and act accordingly.
- Improve connection management code.
- Expose EKG monitoring metrics.
- Fix subscription deadlock on connection drop.
- Fix subscription catchup state tracking on connection drop.
- Fix internal connection dispose lock implementation.
- Bump
aeson
version.
- Fix deadlock issues in subscription code.
- Improve cluster connection fiability.
- Internal refactoring.
- Typeful
EventType
- Report stream name when facing a 'Stream not found' error from the server on catchup subscription.
- Prevent the driver from deadlocking when asking for catchup subscription on a stream that doesn't exist.
- Fix a deadlock on user side when asking a catchup subscription on a stream that doesn't exist.
- Fix an internal connection bug.
- Bump
aeson
version. - Internal connection refactoring.
- Bump
http-client
version.
- Restrain
http-client
package version.
- Typo on
streamExists
implementation.
- Add
streamExists
ExpectedVersion
smart constructor.
- Bump protobuf version
- Implement SSL Connection
- Implement
waitConfirmation
function
- Quit using internal .NET TimeSpan for dotnet-timespan TimeSpan
- Implement Cluster connection.
- Domain can be used to connect to a server instance.
- Bump aeson version.
- Bump async version.
- Fix $maxAge and $cacheControl TimeSpan metadata serialization.
- Fix
timeSpanFrom*
functions. - Implement
timeSpanTotalDays
,timeSpanTotalHours
,timeSpanTotalMinutes
andtimeSpanTotalSeconds
. - Add
withBinary
andwithBinaryAndMetadata
. - Remove useless
TimeSpan
ToJSON
andFromJSON
instances. - Drop
attoparsec
dependency.
- Increase cereal upper bound to <0.6
- Increase aeson upper bound to <0.11
- Fix stackage integration.
- Introduce convinient persistent subscription functions.
- Add multi GHC version testing.
- Rewrite entirely the internals.
- Implement integration tests.
- Rename every
ExpectedVersion
smart constructors. - Improve internal and public documentation.
- Improve failure reports when the connection dropped.
- Implement more robust internal connection.
- Implement competing consumers.
- Expose an uniform API among all kind of subscriptions.
- Rewrite internal subscription management.
- Add missing
Eq
orShow
instances for exposed datatypes. - Add
streamMetadataCustomPropertyValue
andstreamMetadataCustomProperty
. - Add logging capability.
- Fix compilation issue
- Add
setStreamMetadata
- Add
getStreamMetadata
- Internal connection changes
- Allow creating an event with an existing ID
- Tight package channnel to connection instance in order to prevent loss on connection drops.
Connection
has asynchronous operation for real now.
- Fix date conversion.
recordedEventCreateEpoch
is no longer exposed. - Add
waitTillCatchup
andhasCaughtUp
functions. - Add
exactStream
ExpectedVersion
smart constructor. As the result,ExpectedVersion
constructors are no longer exposed. You have to useanyStream
,noStream
,emptyStream
orexactStream
instead.
No changes
- Support
keepRetrying
reconnection strategy.