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

Akka.Persistence plugin #577

Merged
merged 24 commits into from
Jan 30, 2015
Merged

Conversation

Horusiath
Copy link
Contributor

This is a port of the canonical Akka.Persistence plugin for Akka JVM:

  • User-friendly documentation is available under documentation/wiki/Persistence.md.
  • Technical description of the actor's recovery cycle can be found inside README.md file in main Akka.Persistence project.
  • Example project (Examples/Persistence/PersistentExample) shows basic API usage.
  • Additional tech description may be found in XML comments inside project itself.

While all common cases are working, there are still some known issues. Some of the implemented test may still be failing - those are marked as skipped - for various reasons, including bugs found in other parts of core Akka project (known places are tagged with FIXME comment inside project code base).

Additionally, Akka.Persistence.TestKit xUnit-based project also has been ported to provide basic test cases to verify third-party plugins of backend storages for Journals and Snapshot Stores. All test cases are have been implemented successfully, so this project can be freely used for plugin verification.

This push request doesn't introduce any nuspec files inside the projects, so actual NuGet packaging must be done in separate commit.

cc #316

…). Finished pseudo-FSMs for eventsourced and persistent views, finished journals and stores. Fixed compilation errors. Tests still missing
rogeralsing added a commit that referenced this pull request Jan 30, 2015
@rogeralsing rogeralsing merged commit 7d62461 into akkadotnet:dev Jan 30, 2015
@Aaronontheweb
Copy link
Member

@Horusiath I think this is a tremendous accomplishment, Bartosz. Very well done.

Do you think this is ready to distribute via a -pre NuGet package yet for super-early adopters? Or are there some critical cases and features missing still?

@Horusiath
Copy link
Contributor Author

@Aaronontheweb I love that kind of questions ;) As a man, who spent 99% of his time with this lib on debugging, fixing and seeing things broken I think I'm the most skeptic person in the world to distribute this package right now :D

I think that journals and snapshot stores are pretty stable right now. We may even start to integrate them with 3rd party storage. Considering other parts of the library:

  • PersistentActor and it's derivatives are almost done. Tests have shown some problems with custom persistent actors using stashing, but I don't know yet if this issue occurs also in real actor systems.
  • PersistentView also works quite well. There are some minor problems referring an update message parametrization and actor crashes during recovery.
  • GuaranteedDeliveryActors is the part, I'm most concerned with. While everything seems to work as designed, there are still some failing scenarios of recovering unconfirmed messages received from actor's state snapshot.

Summarizing: I think we may distribute it with -pre flag, but I'd recommend to take this lib, compile it, play with and try to break some things... by more than one person to be sure.

@mmisztal1980
Copy link
Contributor

I can't seem to locate documentation/wiki/Persistence.md - is this an authorization issue?

@Aaronontheweb
Copy link
Member

@mmisztal1980
Copy link
Contributor

yes! Cheers Aaron.

@Aaronontheweb
Copy link
Member

No problem Maciek - we're going to do a re-organization of the documentation to make this stuff easier to find in the future :)

@Horusiath Horusiath deleted the akka-persistence branch March 23, 2016 14:07
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

Successfully merging this pull request may close these issues.

4 participants