Skip to content

Commit

Permalink
Move event-sourcing parts to own lib and refactor persistence strategy
Browse files Browse the repository at this point in the history
- Close #5: ES now works with Stream, StreamId, AggregateType and
  StreamEvent
- Event translation is task of the repository, ES requires it's special types
  • Loading branch information
codeliner committed Jun 8, 2014
1 parent a3e5c4c commit ff8b363
Show file tree
Hide file tree
Showing 40 changed files with 722 additions and 2,864 deletions.
1 change: 1 addition & 0 deletions .gitignore
Expand Up @@ -4,3 +4,4 @@
/vendor
.idea
nbproject
composer.lock
9 changes: 3 additions & 6 deletions README.md
Expand Up @@ -8,13 +8,12 @@ The library is heavily inspired by [malocher/event-store](https://github.com/mal

##Features
- Event-driven library [in progress]
- Full DDD support (no dependency of ES in domain model) [in progress]
- Default event sourcing AggregateRoot, DomainEvent and repository implementations to ease usage [done]
- Full DDD support (no dependency of ES in domain model) [done]
- Default event-sourcing components [done] -> but live in a separate library: [prooph/event-sourcing](https://github.com/prooph/event-sourcing)
- IdentityMap to support collection-oriented repositories [done]
- Transaction handling [done]
- Optional snapshot strategies [not started]
- Optional concurrent logging [not started]
- Support for ValueObjects as AggregateRoot identifiers [done]
- Link your own event dispatcher and/or connect ProophServiceBus [done]
- FeatureManager to ease customization [done]
- Support for [Buttercup.Protects](https://github.com/buttercup-php/protects) [not started]
Expand All @@ -26,10 +25,8 @@ The library is heavily inspired by [malocher/event-store](https://github.com/mal

##Included libraries
- The ProophEventStore is based on [ZF2 components](http://framework.zend.com/) which offer a lot of customization options.
- Uuids of the AggregateChangedEvents are generated with [rhumsaa/uuid](https://github.com/ramsey/uuid)
- Uuids of the StreamEvents are generated with [rhumsaa/uuid](https://github.com/ramsey/uuid)
- Assertions are performed by [beberlei/assert](https://github.com/beberlei/assert)
- Immutable DateTime ValueObjects are provided by [nicolopignatelli/valueobjects](https://github.com/nicolopignatelli/valueobjects)
- ArrayReader to access payload properties of Events with ease is powered by [codeliner/array-reader](https://github.com/codeliner/array-reader)

##Installation
You can install ProophEventStore via composer by adding `"prooph/event-store": "dev-master"` as requirement to your composer.json.
Expand Down
20 changes: 12 additions & 8 deletions composer.json
Expand Up @@ -17,23 +17,27 @@
"EventStore",
"library",
"DDD",
"domain-driven design",
"prooph",
"zf2"
],
"require": {
"php": ">=5.4",
"rhumsaa/uuid" : "2.5.*",
"codeliner/php-equalsbuilder": "1.1.*",
"codeliner/array-reader": "1.0.*",
"codeliner/shared-domain-set": "1.2.*",
"beberlei/assert": "*",
"zendframework/zend-servicemanager" : "2.3.*",
"zendframework/zend-eventmanager" : "2.3.*",
"zendframework/zend-db" : "2.3.*",
"zendframework/zend-serializer" : "2.3.*"
"zendframework/zend-servicemanager" : "~2.3",
"zendframework/zend-eventmanager" : "~2.3",
"zendframework/zend-db" : "~2.3",
"zendframework/zend-serializer" : "~2.3"
},
"require-dev": {
"phpunit/phpunit": "3.7.*"
"phpunit/phpunit": "3.7.*",
"prooph/event-sourcing" : "dev-master"
},
"suggest" : {
"prooph/event-sourcing" : "Basic functionality for event sourced aggregates",
"prooph/service-bus" : "Enterprise Service Bus adapter to connect EventStore with messaging systems",
"prooph/crud-bridge" : "Handle CRUD-ish entities with CQRS + ES"
},
"autoload": {
"psr-0": {
Expand Down

0 comments on commit ff8b363

Please sign in to comment.