asynkron / protoactor-dotnet

Proto Actor - Ultra fast distributed actors for Go, C# and Java/Kotlin
http://proto.actor
Apache License 2.0
1.73k stars 288 forks source link

Persistence API - Separation of Events and Snapshots #186

Closed tomliversidge closed 7 years ago

tomliversidge commented 7 years ago

As discussed in https://github.com/AsynkronIT/protoactor-dotnet/issues/137 and https://github.com/AsynkronIT/protoactor-dotnet/pull/136 there is an idea to separate out the concept of events vs snapshots, at different levels:

  1. At the provider level, i.e. break out IProviderState into IEventState and ISnapshotState. This would allow different stores to be used for each if desired.
  2. At the actor level, i.e. explicitly opt-in to either Events, Snapshotting or both. This is a bigger change due to the coupling of the index shared between Events and Snapshots.
rogeralsing commented 7 years ago

Can we close this? this has been fixed, right?

tomliversidge commented 7 years ago

Hmmm.. 2. was done, but we still have a single interface for persistence - IProviderState, and we can still only have a single store for both snapshots and events. Having a single interface also makes it messier to decorate if someone wanted to. Don't think there is a particular demand to split it out yet though so we could always close it and re-open later if needed?

raskolnikoov commented 7 years ago

I also think we can close this for now and open a new tricket if users really want it separated. 👍