* Numerous version upgrades to dependencies
* Publish integration test maven dependencies automatically
* Use slf4j logging, with standard OPS4j Pax Logging
* Maven and sbt use different target directories
* Add a custom serializer to the integration test
* Add akka-persistence to the integration test
* Removing reference copying and using a BundleDelegatingClassLoader
* Make akka-actor a proper bundle, and remove duplicate classes and
reference.conf files from akka-osgi
* Remove akka-osgi-aries
This is a hackathon team effort by:
* Björn Antonsson
* Endre Sándor Varga
* Roland Kuhn
* Patrik Nordwall
- move license and homepage into build definition
- enable sbt-license-report plugin to properly pick it up
- remove hand-coded XML (always a good idea)
- remove ls.implicity.ly plugin
- remove STM reference from README
* Update protobuf dependency so mvn clean install runs again
* Bump OSGi version range in AkkaBuild to include current 2.3 for generated manifests
* Update path in dev documentation to correct TexBasic folder
The most prominent changes compared to eventsourced are:
- No central processor and channel registry any more
- Auto-recovery of processors on start and restart (can be disabled)
- Recovery of processor networks doesn't require coordination
- Explicit channel activation not needed any more
- Message sequence numbers generated per processor (no gaps)
- Sender references are journaled along with messages
- Processors can determine their recovery status
- No custom API on extension object, only messages
- Journal created by extension from config, not by application
- Applications only interact with processors and channels via messages
- Internal design prepared for having processor-specific journal actors (for later optimization possibilities)
Further additions and changes during review:
- Allow processor implementation classes to use inherited stash
- Channel support to resolve (potentially invalid) sender references
- Logical intead of physical deletion of messages
- Pinned dispatcher for LevelDB journal
- Processor can handle failures during recovery
- Message renamed to Persistent
This prototype has the following limitations:
- Serialization of persistent messages and their payload via JavaSerializer only (will be configurable later)
- The LevelDB journal implementation based on a LevelDB Java port, not the native LevelDB (will be configurable later)
The following features will be added later using separate tickets:
- Snapshot-based recovery
- Reliable channels
- Journal plugin API
- Optimizations
- ...