anchor.diff:  
   ## Resources
   
  -There're already few blog posts about building an event sourced applications with [rails_event_store](https://github.com/RailsEventStore/rails_event_store) and `aggregate_root` gems:
  +There're already a few blog posts about building event sourced applications with [rails_event_store](https://github.com/RailsEventStore/rails_event_store) and `aggregate_root` gems:
   
   - [Why use Event Sourcing](https://blog.arkency.com/2015/03/why-use-event-sourcing/)
   - [The Event Store for Rails developers](https://blog.arkency.com/2015/04/the-event-store-for-rails-developers/)
  
positive.code: end
  ```
  
  Remember that this is only a default event store used by `AggregateRoot` module to initialize `AggregateRoot::Repository` when no event store is given in repository's constructor as argument.
  
  ## Usage
  
  To create a new aggregate domain object include `AggregateRoot` module.
  
  ```ruby
  class Order
  
negative.code: repository.store(order, stream_name)
  ```
  
  Storing (publishing) aggregate changes is also performed by the `AggregateRoot::Repository` object. Repository's `#store` gets all the unpublished aggregate's domain events (added by executing a domain logic method like `submit`) from `unpublished_events` and publishes them in order of creation to the event store.
  
  #### Simplify loading/storing aggregates
  
  `AggregateRoot::Repository` delivers a convenient method to handle a typical workflow with aggregates. The `with_aggregate` method will load an aggregate from a given stream, yield a block to allow performing an action on the aggregate object (the aggregate object will be yielded as a block argument), and then publish all changes in aggregate to the event store provided to the repository.
  
  ```ruby
  stream_name = "Order$123"
  