eventstore 1.3.2 → 1.3.3
raw patch · 3 files changed
+25/−5 lines, 3 filesPVP: major bump suggested
API removals or changes: PVP suggests a major version bump
API changes (from Hackage documentation)
- Database.EventStore: LogCallback :: (LogStr -> IO ()) -> IO () -> LogType
- Database.EventStore: LogFile :: FileLogSpec -> BufSize -> LogType
- Database.EventStore: LogFileNoRotate :: FilePath -> BufSize -> LogType
- Database.EventStore: LogFileTimedRotate :: TimedFileLogSpec -> BufSize -> LogType
- Database.EventStore: LogNone :: LogType
- Database.EventStore: LogStderr :: BufSize -> LogType
- Database.EventStore: LogStdout :: BufSize -> LogType
- Database.EventStore: data LogType
+ Database.EventStore: Pinned :: SystemConsumerStrategy
+ Database.EventStore: type LogType = LogType' LogStr
Files
- CHANGELOG.markdown +4/−0
- Database/EventStore/Internal/Types.hs +19/−3
- eventstore.cabal +2/−2
CHANGELOG.markdown view
@@ -1,3 +1,7 @@+1.3.3+-----+* Add `Pinned` system consumer strategy.+ 1.3.2 ----- * Bug fix: Driver could end in a situation where it receives a close-connection message during
Database/EventStore/Internal/Types.hs view
@@ -1084,10 +1084,24 @@ -- | System supported consumer strategies for use with persistent subscriptions. data SystemConsumerStrategy = DispatchToSingle- -- ^ Distributes events to a single client until it is full. Then round- -- robin to the next client.+ -- ^ Distributes events to a single client until the bufferSize is reached.+ -- After which the next client is selected in a round robin style,+ -- and the process is repeated. | RoundRobin- -- ^ Distributes events to each client in a round robin fashion.+ -- ^ Distributes events to all clients evenly. If the client buffer-size+ -- is reached the client is ignored until events are+ -- acknowledged/not acknowledged.+ | Pinned+ -- ^ For use with an indexing projection such as the system $by_category+ -- projection. Event Store inspects event for its source stream id,+ -- hashing the id to one of 1024 buckets assigned to individual clients.+ -- When a client disconnects it's buckets are assigned to other clients.+ -- When a client connects, it is assigned some of the existing buckets.+ -- This naively attempts to maintain a balanced workload.+ -- The main aim of this strategy is to decrease the likelihood of+ -- concurrency and ordering issues while maintaining load balancing.+ -- This is not a guarantee, and you should handle the usual ordering+ -- and concurrency issues. deriving (Show, Eq) --------------------------------------------------------------------------------@@ -1095,12 +1109,14 @@ strategyText :: SystemConsumerStrategy -> Text strategyText DispatchToSingle = "DispatchToSingle" strategyText RoundRobin = "RoundRobin"+strategyText Pinned = "Pinned" -------------------------------------------------------------------------------- -- | Tries to parse a 'SystemConsumerStrategy' given a raw 'Text'. strategyFromText :: Text -> Maybe SystemConsumerStrategy strategyFromText "DispatchToSingle" = Just DispatchToSingle strategyFromText "RoundRobin" = Just RoundRobin+strategyFromText "Pinned" = Just Pinned strategyFromText _ = Nothing --------------------------------------------------------------------------------
eventstore.cabal view
@@ -4,10 +4,10 @@ -- -- see: https://github.com/sol/hpack ----- hash: 171ce48c5ca32c8763beafe10906ae6d4b555cfc1b24872d3f56cef12b1d761d+-- hash: bf11e2eb3f56e21967cbcbcdbafbb405a8955a6942e4b7f12ddaae7597d57737 name: eventstore-version: 1.3.2+version: 1.3.3 synopsis: EventStore TCP Client description: EventStore TCP Client <https://eventstore.org> category: Database