Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

V3 checklist #116

Open
17 of 22 tasks
bartelink opened this issue Jun 23, 2021 · 0 comments
Open
17 of 22 tasks

V3 checklist #116

bartelink opened this issue Jun 23, 2021 · 0 comments
Milestone

Comments

@bartelink
Copy link
Collaborator

bartelink commented Jun 23, 2021

  • Cosmos: continues to target Equinox.Cosmos >= 2.6.0, so can not be used side by side with Propulsion.* >=3.0.0. Probably remove in 3.x
  • CosmosStore: target non-preview CFP logic (I believe that will be in Microsoft.Azure.Cosmos 3.21.0 see PR)
  • rename maxDocuments to maxItems for CosmosStore
  • Add AwaitWithStopOnCancellation
  • Kafka: target FsKafka/CK ~1.7 V1.7.0 checklist FsKafka#48
  • Kafka0: remove see V1.7.0 checklist FsKafka#48
  • remove net461 multitargeting
  • EventStore: update to target Equinox.* 3.0.0. Probably remove in 3.x
  • SqlStreamStore: update to target Equinox.* 3.0.0 (currently does not bind to Equinox)
  • CosmosStore3: target Equinox.CosmosStore 3.x
  • CosmosStore: target Equinox.CosmosStore >= 4
  • EventStoreDb: target Equinox.EventStoreDb >= 4
  • remove dependency on .Destructure.FSharpTypes by replacing Option with Nullable and list with Array
  • Replace all tuples with ValueTuple and other cleanup (see V3 cleanup and signature changes #169)
  • Propulsion: push StreamSpan and/or an equivalent down into FsCodec (or perhaps use tuples for signatures)
  • Propulsion, CosmosStore, Cosmos: separate out .Prometheus packages
  • Propulsion: Consider removing Parallel stuff and/or shifting it out to a specific package as
    a) it has no metrics
    b) it has low usage
    c) while its arguably an on-ramp to understanding the streams impl, it also increases the concept count
  • Improve serverless support and resource consumption by:
    • replacing combinations of SemaphoreSlim + ConcurrentQueue + Async Write APIs with usage of System.Threading.Channels
    • provide a Lambda-hosted DynamoStore projection loop mode which (subject to a timeout and linger period), reads from the index, runs the projections (and/or cancels them if if the timeout has been reached), checkpoints until one of:
      • timed out
      • index tail reached and linger period expired
    • provide an Azure Functions mode where
  • Kafka: Separate Sink from Consumer/Source in the StreamsProjector in manner equivalent to how it works for other sources in order that Kafka does not need to be special-cased wrt SourceArgs in the dotnet-templates proReactor template
  • EventStore: Merge the striped reader support into EventStoreDb and remove
@bartelink bartelink added this to the 3.0.0 milestone Jun 23, 2021
@bartelink bartelink pinned this issue Jul 19, 2022
bartelink added a commit that referenced this issue Aug 25, 2022
Lots of restructuring prompted by
a) signature changes driven by profiling
b) implementation of FeedSourceBase.AwaitCompletion

See also #116:

cleanup naming and signatures for Sinks
rename ProjectorPipeline<'T> -> Sink
name Ingester batch tuples
Restructure Scheduler modules
rename Feed.Internal to Feed.Core
convert all Tuples to struct tuples
change StreamSpan from a record to a type alias
Linting e.g. remove ., ref etc
Extensive profiling-driven impl changes
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant