| CARVIEW |
Navigation Menu
-
Notifications
You must be signed in to change notification settings - Fork 23
Releases: jet/propulsion
Task/ValueTuple/ReadOnlyMemory/Channels migration. Add .MemoryStore, .DynamoStore, .MessageDb; Support non-event sourced pipelines
Added
Feed:Monitor.AwaitCompletionenables quasi deterministic waiting for the processing of async reactions within integration tests #170Feed:Checkpointenables committing progress (and obtaining the achieved positions) without stopping the Sink #162Feed.SinglePassFeedSource: Coordinates reads of a set of tranches until each reaches its Tail #179Streams.Stats.abendThreshold: Abends Sink's processing with aHealthCheckExceptionif a stream continually fails to progress, or continually errors with non-transient exceptions #246Streams.Stats.Categorize: Break downokhandler outcomes by stream category #258Streams.Stats.Latency.Record(Ok|Outcom|Exn): Gather custom Handler latency metrics #258StreamFilter: Generic logic for filtering source events based on Category name, Stream name or Event type #252Ingester, Sinks: Expose optionalingesterStateIntervalandcommitIntervalcontrol on Sink factories #154 #239Scheduler: Split out stats rerateLimitedandtimedOutvsexceptions#194Scheduler: Addedindex,eventTypeto error logging #237Scheduler:purgeIntervalto control memory usage #97Scheduler:wakeForResultsoption to maximize throughput (without having to drop sleep interval to zero) #161Internal.Async.AwaitKeyboardInterruptAsTaskCanceledException: Honored cancellation; moved toPropulsion.Internal#160Propulsion.EventStoreDb: PortedEventStoreto targetEquinox.EventStore>=4.0.0(using the gRPC interface) #139Propulsion.CosmosStore3: Special cased version ofPropulsion.CosmosStoreto targetEquinox.CosmosStorev[3.0.7-3.99.0]Deprecated; Please migrate toPropulsion.CosmosStoreby updatingEquinox.CosmosStoredependencies to4.0.0#139Propulsion.DynamoStore:Equinox.CosmosStore-equivalent functionality forEquinox.DynamoStore. Combines elements ofCosmosStore,SqlStreamStore,Feed#140 #140 #177Propulsion.MessageDb:FeedSourceandCheckpointStorefor MessageDb #181 🙏 @nordfjordPropulsion.MemoryStore:MemoryStoreSourceto align with other sources for integration testing. Includes deterministicAwaitCompletionas perPropulsion.Feed-based Sources #165Propulsion.SqlStreamStore: AddedstartFromTail#173Propulsion.Tool:checkpointcommandline option; enables viewing or overriding checkpoints #141Propulsion.Tool:sync <kafka|stats>supportsfrom jsonsource option #250Propulsion.Tool: Add support for autoscaling throughput of Cosmos containers and databases #142 🙏 @brihadishPropulsion.Tool:sync cosmos from <cosmos|json>#252 #263
Changed
- Targeted
net6.0with6.0.300SDK,FSharp.Corev6.0.0,FSharp.Control.TaskSeqv0.4.0,MathNet.Numericsv4.15.0 - Changed all
Tupletypes tostructtuples (System.ValueTuple) #169 - Changed all
AsynctoTask#192 Dispatcher: ReplacedGetConsumingEnumerablewithSystem.Threading.Channels#155Ingester,Submitter: ReplacedAsync.SleepwithTask.WhenAny; Condensed logging #154Pipeline: RenamedAwaitShutdowntoAwait, addedWait#192Projector: ReplacedAsyncwithtaskfor projector supervision #156Scheduler: ReplacedConcurrent*withSystem.Threading.Channels#156Scheduler:Struct/voptionconversions; buffer reuse #157Scheduler: ReplacedThead.SleepwithTask.WhenAny; Added Sleep time logging #161Streams: Changed dominantITimelineEventEventBodytype frombyte[]toSystem.ReadOnlyMemory<byte>(Sinks.EventBody) #169 #208Propulsion.CosmosStore: Changed to targetEquinox.CosmosStorev4.0.0#139Propulsion.CosmosStore.CosmosSource: Changed parsing to useSystem.Text.Json#139Propulsion.CosmosStore.CosmosStoreSink+CosmosStorePruner: Exposed*Stats#226Propulsion.EventStore: Pinned to targetEquinox.EventStorev[3.0.7-3.99.0]Deprecated; Please migrate toPropulsion.EventStoreDb#139Propulsion.EventStoreDb.EventStoreSource: Changed API to matchPropulsion.SqlStreamStoreAPI rather thanPropulsion.EventStore#139Propulsion.Feed: Moved implementations into mainPropulsionlibrary. While this adds aFSharp.Control.TaskSeqdependency, it makes maintenance and navigation easier #265Propulsion.Feed,Kafka: ReplacedAsyncwithtaskfor supervision #158, #159Propulsion.Kafka: TargetFsCodec.NewtonsoftJsonv3.0.0#139Propulsion.Prometheus: ExtractedPropulsion.PrometheusandPropulsion.Feed.Prometheusin order to removePrometheusdependency from core package #265Propulsion.Tool:projectrenamed tosync; sources now have afromprefix #252
Removed
Streams.StreamSpan: Changed from a record to individual arguments ofFsCodec.StreamNameandSinks.Event[]#169 #208Streams.SpanResult: Replaced withint64to reflect the updated position #264 #208Streams:statsIntervalis obtained from theStatswherever one is supplied #208Propulsion.Cosmos: Should not be in general use - users should port toPropulsion.CosmosStore3, thenPropulsion.CosmosStore#193Destructurama.FSharpdependency #152Ingester,Submitter: Removed requirement to specify sleep intervals #154Scheduler: Removed need to tuneidleDelayexcept in extreme circumstances #161
Fixed
Propulsion.CosmosStore.CosmosStoreSource: PropagatecorrelationId/causationId#260Propulsion.SqlStreamStore: Replaced incorrect/meaningless stream name forSqlStreamStoreSource#139- Synced
AwaitTaskCorrectwith official version 3c11142 Projector,Ingester,Submitter,Scheduler: Deterministic shutdown via Cancellation and/or unhandled exceptions #154
New Contributors
- @brihadish made their first contribution in #142
- @nordfjord made their first contribution in #181
- @benjstephenson made their first contribution in #196
Full Changelog: 2.12.2...3.0.0
Assets 2
Target FsCodec 2.3.2, Support metrics for >1 scheduler per process
Versions 2.12.0 and 2.12.1 are unlisted
See ChangeLog
Added
Prometheus:Propulsion.Streams.Log.LogSink: Support indicating the consumer group name via a Serilog (ForContext) property"group"#137
Changed
Kafka: TargetFsCodec.NewtonsoftJsonv2.3.2#138Prometheus:Propulsion.Streams.Log.LogSink: Replace mandatorygroupargument with optionaldefaultGroupto emphasize primacy of"group"Log property #137
Targets (granularly) Equinox.CosmosStore 3.0.6, Equinox.Cosmos 2.6.0, Equinox.EventStore 3.0.6, SqlStreamStore 1.2.0-beta.8, FsCodec 2.3.2, FsKafka 1.7.x, Microsoft.Azure.Cosmos v 3.22.0, Microsoft.Azure.DocumentDB.ChangeFeedProcessor v 2.2.8, prometheus-net v 3.6.0
Assets 2
Target Equinox 3.0.6, add optional producer args
See ChangeLog
Added
Kafka.Producers: optional constructor parameters #135 🙏 @avsaditya19
Changed
CosmosStore: TargetEquinox.CosmosStorev3.0.6#136EventStore: TargetEquinox.EventStorev3.0.6#134
Targets (granularly) Equinox.CosmosStore 3.0.6, Equinox.Cosmos 2.6.0, Equinox.EventStore 3.0.6, SqlStreamStore 1.2.0-beta.8, FsCodec 2.0.0, FsKafka 1.7.x, Microsoft.Azure.Cosmos v 3.22.0, Microsoft.Azure.DocumentDB.ChangeFeedProcessor v 2.2.8, prometheus-net v 3.6.0
Assets 2
Generalize CosmosStoreSource.Run API as .Start
See ChangeLog
Changed
- CosmosStoreSource: Generalize
Runwith integrated Ctrl-C handling toStartyielding aPipeline#133
Targets (granularly) Equinox.CosmosStore 3.0.5, Equinox.Cosmos 2.6.0, Equinox.EventStore 2.6.0, SqlStreamStore 1.2.0-beta.8, FsCodec 2.0.0, FsKafka 1.7.x, Microsoft.Azure.Cosmos v 3.22.0, Microsoft.Azure.DocumentDB.ChangeFeedProcessor v 2.2.8, prometheus-net v 3.6.0
Assets 2
Add propulsion_scheduler_busy metrics; Rebase SqlStreamStore on Propulsion.Feed
See ChangeLog
Added
Streams: Addedpropulsion_scheduler_busymetrics: count and seconds #126
Changed
Feed.PeriodicSource: AddreadTranchesparameter toPump#130Feed.PeriodicSource: AddTrancheIdparameter tocrawl#130CosmosStore: TargetEquinox.CosmosStorev3.0.5SqlStreamStore: Rebase onPropulsion.Feed.FeedSource#131
Removed
net461support #123
Fixed
StreamsProjector: Fix failure to pump batches when usingmaxReadAheadofInt32.MaxValue#124
Targets (granularly) Equinox.CosmosStore 3.0.5, Equinox.Cosmos 2.6.0, Equinox.EventStore 2.6.0, SqlStreamStore 1.2.0-beta.8, FsCodec 2.0.0, FsKafka 1.7.x, Microsoft.Azure.Cosmos v 3.22.0, Microsoft.Azure.DocumentDB.ChangeFeedProcessor v 2.2.8, prometheus-net v 3.6.0
Assets 2
Target Microsoft.Azure.Cosmos 3.0.22
See ChangeLog
Changed
CosmosStore: TargetMicrosoft.Azure.Cosmos(V3 CFP)3.0.22
Targets (granularly) Equinox.CosmosStore 3.0.4, Equinox.Cosmos 2.6.0, Equinox.EventStore 2.6.0, SqlStreamStore 1.2.0-beta.8, FsCodec 2.0.0, FsKafka 1.7.x, Microsoft.Azure.Cosmos v 3.22.0, Microsoft.Azure.DocumentDB.ChangeFeedProcessor v 2.2.8, prometheus-net v 3.6.0
Assets 2
Add Feed.PeriodicSource+.Prometheus, Target Microsoft.Azure.Cosmos 3.0.22-preview
See ChangeLog
Added
Feed.PeriodicSource: Enables periodic traversal of a source where the source does not present an incrementally readable change feed #117Feed.Prometheus: Prometheus integration providing metrics not dissimilar to those available from.CosmosStore(no lag metrics though) #117Pipeline: AddedAwaitWithStopOnCancellation#118CosmosStore: Added handling ofWith(Error|LeaseAcquire|LeaseRevoke)NotificationAPIs introduced inMicrosoft.Azure.Cosmosv3.22.0-preview#120
Changed
CosmosStore: TargetMicrosoft.Azure.Cosmos(V3 CFP)3.0.22-previewCosmosStore: TargetEquinox.CosmosStorev3.0.4CosmosStore: renamemaxDocumentstomaxItemsPipeline: RenamedAwaitCompletiontoAwaitShutdown#118Kafka: TargetFsKafka [1.7.0, 1.9.99)
Removed
Kafka0: Triggered by removal of underlyingFsKafka0#119Kafka: Removed support fornet461, triggered by removal of same in underlyingFsKafka#119
Fixed
- Fix CI to stop emitting builds with incorrect
AssemblyVersion 1.0.0.0(updated MinVer to2.5.0) - Update global.json to use SDK version
5.0.200
Targets (granularly) Equinox.CosmosStore 3.0.4, Equinox.Cosmos 2.6.0, Equinox.EventStore 2.6.0, SqlStreamStore 1.2.0-beta.8, FsCodec 2.0.0, FsKafka 1.7.x, Microsoft.Azure.Cosmos v 3.22.0-preview, Microsoft.Azure.DocumentDB.ChangeFeedProcessor v 2.2.8, prometheus-net v 3.6.0
Assets 2
Target Microsoft.Azure.Cosmos 3.0.20-preview
See ChangeLog
Changed
- CosmosStore: Target
Microsoft.Azure.Cosmosv3.0.20-preview(breaking change vs3.0.19-preview1) #115
Targets (granularly) Equinox.CosmosStore 3.0.0, Equinox.Cosmos 2.6.0, Equinox.EventStore 2.6.0, SqlStreamStore 1.2.0-beta.8, FsCodec 2.0.0, FsKafka 1.5.x, Microsoft.Azure.Cosmos v 3.20.0-preview, Microsoft.Azure.DocumentDB.ChangeFeedProcessor v 2.2.8, prometheus-net v 3.6.0
Assets 2
Port CosmosStore to Microsoft.Azure.Cosmos 3.0.19-preview1
See ChangeLog
Changed
- CosmosStore: Port to
Equinox.CosmosStorev3.0.1,Microsoft.Azure.Cosmosv3.0.19-preview1#113 #114
Targets Equinox.Cosmos 2.6.0, Equinox.CosmosStore 3.0.0,Equinox.EventStore 2.6.0, SqlStreamStore 1.2.0-beta.8, FsCodec 2.0.0, FsKafka 1.5.x, Microsoft.Azure.Cosmos v 3.19-preview1, Microsoft.Azure.DocumentDB.ChangeFeedProcessor v 2.2.8, prometheus-net v 3.6.0
Assets 2
Add Feed, CosmosStore, Prometheus integration; Tune; Target Equinox 2.6+3.0
See ChangeLog
Added
- Prometheus integration
Propulsion.Feed: Initial implementation of generic feed consumer with support for checkpointing in an Equinox stream (HT @scrwtp who provided the baseline impl inPropulsion.SqlStreamStore) #106Propulsion.CosmosStore.CosmosStoreSource: NOTE subject to breaking changes in2.11.0as it will be rebased onMicrosoft.Azure.Cosmos#103- Propulsion.CosmosStore.CosmosStoreSink+CosmosStorePruner - equivalents of features in Propulsion.Cosmos #89
- StreamSpan.Version, SpanResult.NoneProcessed #102
- Streams Scheduler: Tune memory consumption re write positions of inactive streams #94
- StreamsProjector: Tuned submission policy to forward 80% of batches read ahead (except in Kafka case where there's limited benefit so default remains to submit 5 per partition) #105
Changed
- CosmosStore: Target
Equinox.CosmosStorev3.0.0 - Cosmos: Target
Equinox.Cosmosv[2.6.0,2.99.0] - EventStore: Target
Equinox.EventStorev[2.6.0,2.99.0] - lots of finessing of log message text
- Unified
Kafka.StreamsConsumerStats+Streams.Projector.StatsasPropulsion.Streams.Stats - Remove wart from createObserver signature introduced in #91 #101
- Add Major for Propulsion.Tool #92
- Replaced numeric field names with strings in latency percentiles message #93
- Kafka: Replace defaulting of Producer's acks defaulting to Leader with mandatory argument #89
Targets Equinox.Cosmos 2.6.0, Equinox.CosmosStore 3.0.0, Equinox.EventStore 2.6.0, SqlStreamStore 1.2.0-beta.8, FsCodec 2.0.0, FsKafka 1.5.x, Microsoft.Azure.DocumentDB.ChangeFeedProcessor v 2.2.8, prometheus-net v 3.6.0