equinox
equinox copied to clipboard
V5 checklist
Breaking change/things that are ugly queue:
- Add OpenTelemetry integration
-
CosmosStore
: will shift to usingAzure.Cosmos
when that happens. When that work might happen is subject to change. Here's an example of some teaser info. -
Cosmos
: Check if newer query engine optimizations might yield a better indexing strategy, see linked article in https://github.com/jet/equinox/issues/274 (perhaps it can borrow the one that works in DynamoDB now given this enhancement?) - provide a way to specify a load hint that allows you to target a specific
Version
(or force a full Reload?)
V4 vs V3:
- StreamName -> StreamId: stores take the Category name, Decider.forStream/forRequest only take a StreamId #419
- remove Equinox.Core ref to Equinox; remove Equinox.Core ref from Stores #420
- migrate to
IAsyncEnumerable
- changed
maxAttempts
and associated throwing behavior fromDecider
ctor toTransact
'sattempts
argument #310 - convert internal impl to
task
; expose same (but retainingAsync
as the primary interface in order to avoid leaking continuation token mess) #337 #338 -
EventStoreDb
: inCosmosStore
,BatchingPolicy
/QueryMaxItems
etc are de-emphasized - perhaps same should be done for the EventStore equivalents? (e.g.EventStore.Context
has an overload that requires one) #338 - remove explicit full FW support (libs move to
netstandard2.1
/net6.0
#310 - run [tests and compilation on
net6.0
#310 - rename Equinox.EventStore.Log.Event -> Metric to match CosmosStore #311
- rename Equinox.SqlStreamStore.Log.Event -> Metric to match CosmosStore #311
- fixes Equinox.SqlStreamStore.Log.PropertyTag to
"ssEvt"
#311 - adds an overload of
Transact(interpret : 'state -> Async<'event list>)
#314 - renames
Decider.TransactAsync
toTransact
#314 - ~replaces
XXXStoreCategory.FromMemento
stuff with aLoadOption.FromMemento
(The system that previously used this has been decommissioned, so we may consider removing it until we have realistic use case justifying its continued existence) #308~ later removed - renames
AsyncCacheCell
->TaskCell
(andAsyncLazy
->LazyTask
) #432
V3 breaking changes compared to V2:
- Equinox.EventStore V2 depends on EventStore.ClientApi V5.x; V3 depends on 20.6 (NOTE: EventStore Grpc and EventStore.Client 20.x require`protobuf-net 4.x whereas EventStore.Client v5.x requires protobuf-net 3.x).
- Equinox.Cosmos V2 depends on Microsoft.Azure.DocumentDb.Core V2.x whereas V3 ~will depend on Azure.Cosmos (aka V4)~ targets
Microsoft.Azure.Cosmos
for now, as MS have parkedAzure.Cosmos
(aka V4) for the foreseeable - V2 supports full FW and/or netcore 1.x, with tools on 2.x, V3 tools are
netcoreapp3.1
- V3 Changed default connection mode to
Direct
to match V3 SDK #281 - V3
maxItemsInTip
is mandatory in CosmosStoreContext ctor #284 - V2 and V3 both support inhibiting certificate validation. ~Equinox.Cosmos V4 does not currently implement support for ignoring cert validation for e.g. use with Cosmos Simulator. Now
Microsoft.Azure.Cosmos
V 3.11 adds a custom HTTP factory, this could be implemented)~ #236 resolves this; presumably V4 will offer similar when rebased