The Wayback Machine - https://web.archive.org/web/20201117185758/https://github.com/eventflow/EventFlow/pull/464
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

PoC: Event streaming #464

Open
wants to merge 9 commits into
base: develop
from
Open

PoC: Event streaming #464

wants to merge 9 commits into from

Conversation

@rasmus
Copy link
Member

@rasmus rasmus commented May 14, 2018

Relevant for

  • Loading aggregates with a huge amount of events and no snapshots (#191)
  • Importing events to the event persistence (#294)
  • Exporting huge aggregates (#49)

Current implementation uses the System.Interactive.Async NuGet package, but C# 8 might introduce IAsyncEnumerable as part of the language.

To do

  • Determine why resources aren't released
  • Remove reference to System.Interactive.Async
  • Write more tests
  • Rework read model re-populating to use streaming
rasmus added 5 commits May 14, 2018
@codecov
Copy link

@codecov codecov bot commented May 15, 2018

Codecov Report

Merging #464 into develop will increase coverage by 0.11%.
The diff coverage is 89.2%.

Impacted file tree graph

@@             Coverage Diff             @@
##           develop     #464      +/-   ##
===========================================
+ Coverage    75.23%   75.34%   +0.11%     
===========================================
  Files          258      259       +1     
  Lines         6500     6669     +169     
  Branches       539      548       +9     
===========================================
+ Hits          4890     5025     +135     
- Misses        1381     1402      +21     
- Partials       229      242      +13
Impacted Files Coverage Δ
.../EventFlow/Configuration/EventFlowConfiguration.cs 100% <100%> (ø) ⬆️
Source/EventFlow/Aggregates/Metadata.cs 75% <100%> (+1.31%) ⬆️
...w/EventStores/InMemory/InMemoryEventPersistence.cs 87% <12.5%> (-6.48%) ⬇️
...entFlow/EventStores/Files/FilesEventPersistence.cs 75% <33.33%> (-3.2%) ⬇️
...tFlow.SQLite/EventStores/SQLiteEventPersistence.cs 87.62% <33.33%> (-1.74%) ⬇️
...entStores.EventStore/EventStoreEventPersistence.cs 87.75% <33.33%> (-1.72%) ⬇️
.../EventFlow/Extensions/AsyncEnumerableExtensions.cs 75% <75%> (ø)
Source/EventFlow/EventStores/EventStoreBase.cs 90.65% <91.3%> (+0.17%) ⬆️
Source/EventFlow/Aggregates/AggregateRoot.cs 80.18% <94.73%> (+3.26%) ⬆️
...entFlow.MsSql/EventStores/MsSqlEventPersistence.cs 96.44% <99.02%> (+2.63%) ⬆️
... and 13 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 06834a4...bb575e4. Read the comment docs.

@wgtmpeters
Copy link
Contributor

@wgtmpeters wgtmpeters commented May 15, 2018

is there no way to implement this for the Eventstore.Eventstore?

We expect to have some aggravates with huge amount of events and are planning to use eventstore. Do you expect that these changes will outperforme eventstore?

@rasmus
Copy link
Member Author

@rasmus rasmus commented May 16, 2018

Hi @wgtmpeters I just haven't done the implementation for EventStore yet, but I'll look into it. It should be relatively easy as the current implementation is already loading events in batches, but is currently putting them into a list before returning.

I haven't looked into how bulk inserting would work for EventStore.

But I hope these changes, along with event archiving, will make it easier to manage huge event stores and aggregates.

@rasmus rasmus added the enhancement label Jul 1, 2018
@rasmus rasmus mentioned this pull request Oct 16, 2018
@rasmus rasmus mentioned this pull request Jul 29, 2019
@rasmus rasmus mentioned this pull request Sep 16, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked issues

Successfully merging this pull request may close these issues.

None yet

2 participants
You can’t perform that action at this time.