Skip to content

Latest commit

 

History

History
695 lines (438 loc) · 27.9 KB

CHANGELOG.md

File metadata and controls

695 lines (438 loc) · 27.9 KB

Changelog

The repo is versioned based on SemVer 2.0 using the tiny-but-mighty MinVer from @adamralph. See here for more information on how it works.

All notable changes to this project will be documented in this file. The format is based on Keep a Changelog.

The Unreleased section name is replaced by the expected version of next release. A stable version's log contains all changes between that version and the previous stable version (can duplicate the prereleases logs).

Added

  • proIndexer: Template demonstrating a reactor app that maintais a summarised form of an Aggregate's as RollingState in a separated Views Container #132

Changed

  • Target Equinox v 4.0.0-rc.14.5, Propulsion v 3.0.0-rc.9.11, FsCodec v 3.0.0-rc.14.1 #131
  • Target Argu v 6.0.14 #135

Removed

  • proCosmosReactor: Extended/split to become proIndexer #132

Fixed

6.3.1 - 2023-06-12

Changed

  • Target Equinox v 4.0.0-rc.11, Propulsion v 3.0.0-rc.6

6.3.0 - 2023-06-08

Changed

  • Target Equinox v 4.0.0-rc.10, Propulsion v 3.0.0-rc.5 #128
  • module Config -> module Store/module Factory #128

6.2.0 - 2023-01-23

Added

  • proHotel: Process Manager based Reactor with Unit and Integration tests wired for MemoryStore, DynamoStore and MessageDb #127

Changed

  • Target Propulsion v 3.0.0-rc.2 #129

6.1.0 - 2022-12-23

Added

  • proDynamoStoreCdk: AWS CDK wiring for Propulsion.DynamoStore.Indexer and Notifier #125

Changed

  • Target Equinox v 4.0.0-rc.7, Propulsion v 3.0.0-rc.1, FsCodec v 3.0.0-rc.9, net6.0 #126 #127

Removed

  • proIndexer: Generalized into proDynamoStoreCdk #125

6.0.0 - 2022-09-16

Added

  • eqxShipping: DynamoStore and EventStoreDb support and Reactor Integration test #121
  • eqxShipping: Use Propulsion.MemoryStore's AwaitCompletion #121
  • eqxShipping: Use Propulsion.DynamoStore+EventStoreDb's AwaitCompletion #121
  • proProjector, proReactor: Add, standardize cosmos, dynamo, esdb, sss #122
  • eqxwebcs: Removed lots of boilerplate/wiring (by using DeciderCore) #122
  • eqxweb: Add dynamo #122

Changed

  • Target Equinox v 4.0.0-rc.1, Propulsion v 3.0.0-beta.4, FsCodec v 3.0.0-rc.7.1, net6.0 #122
  • All EventStoreDB templates (except proSync) now use the *.EventStoreDb edition (which uses grpc) #122

Removed

  • eqxProjector --source cosmos --kafka --synthesizeSequence: Removed custom mode #122
  • proReactor: remove --filter (see proSync) and --changeFeedOnly (see proReactorCosmos) #122

5.3.0 - 2022-07-19

Added

  • eqxShipping: Cosmos Reactor Integration test #116
  • proIndexer: Propulsion.DynamoStore.Lambda AWS CDK wiring #120

Changed

  • Target Equinox v 3.0.7
  • Align with v4 Transact APIs #117

5.2.1 - 2022-03-11

Added

  • Demonstrate TransactWith implementation 'pattern' #113

Changed

  • Target Propulsion v 2.12.2, Equinox v 3.0.6 #111 #114
  • eqxPatterns: Extract ExactlyOnceIngester #110
  • Target FsCodec.SystemTextJson.* v 2.3.2 #112

5.2.0 - 2021-12-20

Added

  • Use module Config pattern #104
  • proReactorCosmos: Add ReactorMetrics #106
  • feedSource,feedConsumer: Add metrics wiring #109
  • MemoryStoreProjector: Add logging of UTF-8 encoded JSON bodies in #105

Changed

  • Remove usage of type Command DUs #103
  • Target Equinox v 3.0.5, Propulsion v 2.12.0-rc.2
  • Target Destructurama.FSharp v 1.2.0, Serilog.Sinks.Async v 1.5.0, Serilog.Sinks.Console v 4.0.0 #101

5.1.0 - 2021-10-19

Added

  • proCosmosReactor: Template for simplified, same-container Cosmos-based reactions #93 🙏 @ragiano215
  • periodicIngester: Template illustrating usage of Propulsion.Feed.PeriodicSource #96

Changed

  • Added defaulting of 1 min for lag reporting frequency to all Cosmos consumers #95
  • eqxPatterns: replace best effort deduplication pattern with exactly-once ingestion #94
  • Target Propulsion v 2.11.0, Equinox v 3.0.4 #101
  • Target Destructurama.FSharp v 1.2.0, Serilog.Sinks.Async v 1.5.0, Serilog.Sinks.Console v 4.0.0 #101

Fixed

  • Fix CI to stop emitting builds with incorrect AssemblyVersion 1.0.0.0 (updated MinVer to 2.5.0)
  • Update global.json to use SDK version 5.0.200

5.0.0 - 2021-06-22

Changed

  • Target Propulsion v 2.11.0-rc2, Equinox v 3.0.1 #91
  • Target Destructurama.FSharp v 1.1.1-dev-00035

4.12.0 - 2021-06-02

Added

  • eqxPatterns: Period: Skeleton Deciders+Tests for Period with Rolling Balance #89
  • eqxPatterns: Series+Epoch: Skeleton Deciders+Tests for deduplicated ingestion of items #89
  • eqxProjector --source cosmos --kafka --synthesizeSequence: Sample code for custom parsing of document changes #84
  • feedApi: Template for a Web API serving a feed that can be tracked by a feedConsumer #88
  • feedConsumer: Template for Feed Consumer tracking a feedApi #88
  • proArchiver: Parameterize max Sync batch size limit, default to 512KiB
  • proAchiver, proPruner, eqxWeb, eqxWebCs: Added prometheus-net integration

Changed

  • Clean up configuration management #87
  • proAchiver, proPruner: Target Equinox v 3.0.0, Propulsion v 2.10.0
  • Target Propulsion v 2.10.0, Equinox v 2.6.0/3.0.0

4.11.0 - 2020-11-04

Added

  • proArchiver: CosmosDB ChangeFeedProcessor that syncs events from specified Hot Container's categories into a Warm Container #79
  • proPruner: CosmosDB ChangeFeedProcessor that prunes events from a Hot Container based on Expiration status determined by inspecting the Warm version of the Events synced by the proArchiver #79

Changed

  • Cleaned and moved Logging logic out to Infrastructure.fs #76 🙏 @enricosada
  • Polished SemaphoreSlim extensions
  • Target Propulsion v 2.9.0, Equinox v 2.3.0

Fixed

  • Fixed version check logic in TodoSummary ingesters #82 🙏 @dunnry

4.10.0 - 2020-07-27

Added

  • eqxShipping: Unit and integration tests #70

Changed

  • Target Propulsion v 2.8.0, FsKafka v 1.5.0 #78

4.9.0 - 2020-06-10

Added

  • proProjector: Add SqlStreamStore source #74 🙏 @scrwtp

Changed

  • Update to Equinox.* v 2.1.0, Propulsion.* v 2.7.0

4.8.0 - 2020-06-05

Added

  • proProjector: Add EventStore source #73

Changed

  • Cleanup eqxShipping #71

4.7.2 - 2020-05-20

Changed

  • Target Propulsion v 2.6.0, FsKafka v 1.4.3

4.7.1 - 2020-05-16

Changed

  • Target Propulsion v 2.5.2, FsKafka v 1.5.0-beta.1

Fixed

  • proReactor, proSync: Fixed Default ES TCP port to 1113 #69 🙏 @svairagade

4.6.0 - 2020-04-27

Added

  • tests/Equinox.Templates.Tests: allow repo to validate integrity of templates within #67 #2
  • proReactor: Add arguments to facilitate projecting from a different database than that used to transact #62 🙏 @svairagade
  • eqxShipping: Add Reserved event/phase to eqxShipping #63
  • Added exception logging (as forced by abstract methods in Stats types) #66

Changed

  • Target Propulsion v 2.4.3, FsKafka v 1.4.1 #64 #66
  • proReactor, proSync: Clean up CosmosContext and Checkpoints management #58

4.5.0 - 2020-04-10

Added

  • eqxShipping Shipping Domain, Process Manager and Watchdog service #56 🙏 @Kimserey

Changed

  • DRY'd handling of MissingArg in Configuration.initialize

4.4.2 - 2020-04-04

Fixed

  • Added missing catch for MissingArg exceptions in all mains #61 🙏 @wantastic

4.4.1 - 2020-04-01

Changed

  • Clarified role of VerboseConsole argument for templates involving ChangeFeedVerbose (by renaming to CfpVerbose)

4.4.0 - 2020-03-27

Added

  • proReactor: Added --kafka --blank mode illustrating a simple publisher #59

Changed

  • proReactor: Flip default to omitting filtering logic (--noFilter is now --filter, defaulting to omitting the logic)

Fixed

  • proReactor: Fixed CFP logging omission
  • proReactor: Wired producer stats emission for --kafka modes

4.3.0 - 2020-03-12

Changed

  • Stats and Outcome management cleanup #57

4.2.0 - 2020-03-09

Changed

  • Coding style fine-tuning #53
  • Clean up resolve/resolver helper template #54

4.1.1 - 2020-03-06

Added

  • Trap ArguException for invalid Argu options 🙏 @fnipo

Changed

  • MaxInflightMb of 10 MiB instead of measuring in GiB and defaulting to .5
  • MaxConcurrentStreams of 8 for ingesters that write to stores (was MaxDop 1024)

Fixed

-proReactor - fixed runtime issue due to aliasing of cosmos parameter; simplified @fnipo #52

4.1.0 - 2020-03-03

Added

Changed

  • Renamed proReactor's --noEventStore to --source changeFeedOnly

Removed

  • proReactor's --raw mode

4.0.1 - 2020-02-28

Fixed

  • Fix eqxweb[cs] by adding AddNewtonsoftJson in order to handle Records emitted in views

4.0.0 - 2020-02-25

Changed

  • Target SDK v 3.1.101
  • Target netcoreapp3.1 #9 #48
  • Merge proSummaryProjector, proAllProjector to form proReactor #49
  • Add --noFilter, --raw switches to proReactor #49

3.12.0 - 2020-02-23

Added

  • Add Propulsion.Cosmos support to proAllProjector #47
  • Add -noEventStore flag to proAllProjector #47

Added

3.11.0 - 2020-02-19

Added

  • Add handling for -T TCP/IP switch on EventStore args #46

Changed

  • Target Propulsion, Equinox, FsCodec.* v 2.0.0

3.10.0 - 2020-02-08

Added

  • Add proAllProjector #45

Changed

  • Target Propulsion.* v 2.0.0-rc3
  • proProjector: extract Handler.fs

Fixed

  • Fix compiler errors in eqxwebcs re #44
  • Removed impossible cases in Examples.fs

3.9.0 - 2020-01-31

Added

Changed

  • Target Equinox.* v 2.0.0-rc9, Propulsion.* v 2.0.0-rc1, FsCodec.* v 2.0.0-rc3
  • Standardize Aggregate layouts

3.8.0 - 2019-12-07

Changed

  • Target Propulsion 1.5.0, FsKafka 1.3.0
  • Use uppercase for switch arguments in commandline parsing

Fixed

  • Included stacktrace in Exception-exit logging

3.7.0 - 2019-11-14

Changed

  • Target Propulsion 1.4.0, Equinox 2.0.0-rc8, FsCodec 1.2.1

3.6.1 - 2019-11-13

Added

  • Split out Settings initialization #34

Changed

  • summaryConsumer: Target FsCodec 1.1.0 to simplify up function #32
  • trackingConsumer: switch serializer to FsCodec #35
  • use -g for ES and Cosmos ConsumerGroupName values #37
  • summaryProjector: Use AllowStale for CheckpointSeries as should only typically run single instance
  • Removed anonymous records usage to support usage with v 2.1.504 SDK

3.6.0 - 2019-10-17

Changed

  • Target Propulsion 1.3.0, Equinox 2.0.0-rc7, FsCodec 1.0.0

3.5.0 - 2019-10-11

Added

  • EventStore source support for summaryProjector #31

Changed

  • Target Propulsion 1.2.1 (minor change to accommodate signature change in .EventStore checkpoints)
  • Lots of consistency + layout work resulting from porting work

3.4.1 - 2019-10-05

Changed

  • Naming consistency and generalizations extracted from porting work.

3.4.0 - 2019-09-18

Added

  • trackingConsumer template providing a baseline for projecting accumulating updates across autonomous bounded contexts: #30 @luo4neck

Changed

  • Significant reformatting and consistency updates in preparation for adding ES support for summaryProjector in #31

3.3.2 - 2019-09-15

Changed

  • Target Propulsion 1.2.0 (minor breaking change in source due to parameter reordering)

<

3.3.1 - 2019-09-08

Changed

  • Target FsCodec 1.0.0-rc2, Equinox 2.0.0-rc6, Propulsion 1.0.2-alpha.0.1

3.3.0 - 2019-09-03

Added

  • summaryProjector, summaryConsumer templates providing a baseline for projecting summaries between autonomous bounded contexts: #29 @fnipo

#

3.2.0 - 2019-08-31

Changed

  • Target Propulsion.* 1.0.1, Equinox.* 2.0.0-rc4 (handling name changes, esp wrt Collection->Container terminology) #28
  • Target Propulsion.* 1.1.0, Equinox.* 2.0.0-rc5, FsCodec.* 1.0.0-rc1, simplifying Codec logic

Fixed

  • Removed various over-complex elements of samples

3.1.0 - 2019-07-05

Added

  • propulsion-sync: Support emission of select events direct to Kafka #26

Changed

  • Target Propulsion.* 1.0.1-rc8
  • EQUINOX_KAFKA_* -> PROPULSION_KAFKA_*

Fixed

  • Removed reliance on IEnumerable<IEvent> in RenderedSpan and StreamSpan

3.0.3 - 2019-07-02

Added

  • Add Publisher.fs sample to proConsumer
  • Simplify proConsumer Examples.fs

Changed

  • Target Equinox.* 2.0.0-rc2, Propulsion.* 1.0.1-rc5

3.0.2 - 2019-06-19

Added

  • proSync has EventStore Sink support via cosmos ... es commandline option #23

  • proSync has EventStore Source support via es ... cosmos commandline option #16

  • proConsumer offers a StreamSpan-based API for ordered, de-deduplicated consumption without concurrent executions at stream level #24

  • proConsumer summarizes processing outcomes in its examples using new support for same in Propulsion.Kafka #25

  • proConsumer -n's offers a parallel mode that runs all projections in parallel without constraints (or need to synthesize streams) #24

Changed

  • eqxsync renamed to proSync
  • eqxProjector split to proProjector and proConsumer
  • eqxtestbed, eqxweb, eqxwebcs now target Equinox 2.0.0-rc1
  • proConsumer, proProjector -k now target Jet.ConfluentKafka.FSharp + Propulsion.Kafka v 1.0.1-rc3 #24
  • proSync now targets Propulsion.Cosmos,Propulsion.EventStore v 1.0.1-rc3 #24

2.2.2 - 2019-05-17

Added

  • dotnet new eqxprojector uses separated read/write/progress pipeline #22

Changed

  • dotnet new eqxprojector -k now targets Jet.ConfluentKafka.FSharp 1.0.0-rc7 (which targets Confluent.Kafka 1.0.0, librdkafka 1.0.0)
  • dotnet new eqxsync uses separated read/write/progress pipeline #21
  • targets Equinox 2.0.0-preview8

Fixed

  • dotnet new eqxprojector correctly handles progress writing #22

2.1.2 - 2019-04-15

Added

  • dotnet new eqxsync has separated processing for progress computation, progress writing and batch loading (this also happens to be the only way in which to balance throughput with correctness in the context of a ChangeFeedProcessor) #19
  • dotnet new eqxsync separates out notion of the CosmosIngester and ProgressBatcher and their respective tests #20

Changed

  • dotnet new eqxetl is now dotnet new eqxsync
  • dotnet new eqxsync now supports command-line category white/blacklist #18
  • dotnet new eqxsync now supports command-line selection of an aux collection in either the source or destination collections #18
  • targets Equinox.* v 2.0.0-preview5
  • dotnet new eqxprojector now targets Jet.ConfluentKafka.FSharp 1.0.0-rc3 (which targets Confluent.Kafka 1.0.0-RC4, librdkafka 1.0.0)

2.0.0 - 2019-03-26

Added

  • dotnet new eqxprojector template, providing a CosmosDb ChangeFeedProcessor host app, with or without a Kafka Producer and Kafka Consumer host app using the Jet.ConfluentKafka.FSharp wrapper for Confluent.Kafka v 1.0.0-beta3 #11
  • dotnet new eqxtestbed template, providing a host that allows running back-to-back benchmarks when prototyping models, using different stores and/or store configuration parameters #14
  • dotnet new eqxetl template, providing a CosmosDb ChangeFeedProcessor that ingests/transforms/filters documents from a source store, feeding events (consistently) into an Equinox.Cosmos store #17

Changed

  • dotnet new eqxweb now uses Anonymous Records syntax HT @ameier38
  • dotnet new eqxprojector now uses Jet.ConfluentKafka.FSharp 1.0.0-preview2 (which uses Confluent.Kafka 1.0.0-RC1)

1.2.0 - 2019-02-06

Changed

  • dotnet new eqxweb now uses FSharp.UMX to make Id types more succinct #12
  • Target Equinox 1.0.4-rc1, which entails minor source changes to both C# and F# #12

Fixed

  • Fix project type guids to render C# projects (was showing F# logo) @aarondandy #8

1.1.1 - 2019-01-17

Added

  • C# port of template - dotnet new eqxwebcs, prompting cleanup work in jet/equinox#81 #5

    Thanks to @aarondandy for early legwork

    Thanks to @mcintyre321 for excellent direct and indirect suggestions regarding how to tidy the Domain implementations

Changed

  • F# template has been renamed to: eqxweb (was equinoxweb)

(For information pertaining to earlier releases, see release notes in https://github.com/jet/dotnet-templates/releases and/or can someone please add it!)