event_sourcery 0.14.0 → 0.15.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (28) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +11 -0
  3. data/README.md +3 -1
  4. data/lib/event_sourcery/aggregate_root.rb +80 -1
  5. data/lib/event_sourcery/config.rb +32 -5
  6. data/lib/event_sourcery/errors.rb +8 -3
  7. data/lib/event_sourcery/event.rb +61 -0
  8. data/lib/event_sourcery/event_body_serializer.rb +16 -0
  9. data/lib/event_sourcery/event_processing/error_handlers/constant_retry.rb +9 -2
  10. data/lib/event_sourcery/event_processing/error_handlers/error_handler.rb +4 -1
  11. data/lib/event_sourcery/event_processing/error_handlers/exponential_backoff_retry.rb +15 -6
  12. data/lib/event_sourcery/event_processing/error_handlers/no_retry.rb +1 -0
  13. data/lib/event_sourcery/event_processing/esp_process.rb +6 -1
  14. data/lib/event_sourcery/event_processing/esp_runner.rb +2 -0
  15. data/lib/event_sourcery/event_processing/event_stream_processor.rb +42 -1
  16. data/lib/event_sourcery/event_processing/event_stream_processor_registry.rb +16 -0
  17. data/lib/event_sourcery/event_store/poll_waiter.rb +10 -0
  18. data/lib/event_sourcery/event_store/signal_handling_subscription_master.rb +7 -0
  19. data/lib/event_sourcery/event_store/subscription.rb +15 -0
  20. data/lib/event_sourcery/memory/config.rb +36 -0
  21. data/lib/event_sourcery/memory/event_store.rb +59 -0
  22. data/lib/event_sourcery/memory/projector.rb +25 -0
  23. data/lib/event_sourcery/memory/tracker.rb +19 -0
  24. data/lib/event_sourcery/repository.rb +28 -0
  25. data/lib/event_sourcery/rspec/event_store_shared_examples.rb +59 -74
  26. data/lib/event_sourcery/version.rb +2 -1
  27. data/lib/event_sourcery.rb +28 -0
  28. metadata +5 -3
@@ -1,3 +1,4 @@
1
1
  module EventSourcery
2
- VERSION = '0.14.0'.freeze
2
+ # Defines the version
3
+ VERSION = '0.15.0'.freeze
3
4
  end
@@ -29,8 +29,30 @@ require 'event_sourcery/aggregate_root'
29
29
  require 'event_sourcery/repository'
30
30
  require 'event_sourcery/memory/tracker'
31
31
  require 'event_sourcery/memory/event_store'
32
+ require 'event_sourcery/memory/config'
33
+ require 'event_sourcery/memory/projector'
32
34
 
33
35
  module EventSourcery
36
+ # Configure EventSourcery
37
+ #
38
+ # @example
39
+ # EventSourcery.configure do |config|
40
+ # # Add custom reporting of errors occurring during event processing.
41
+ # # One might set up an error reporting service like Rollbar here.
42
+ # config.on_event_processor_error = proc { |exception, processor_name| … }
43
+ #
44
+ # # Enable Event Sourcery logging.
45
+ # config.logger = Logger.new('logs/my_event_sourcery_app.log')
46
+ #
47
+ # # Customize how event body attributes are serialized
48
+ # config.event_body_serializer
49
+ # .add(BigDecimal) { |decimal| decimal.to_s('F') }
50
+ #
51
+ # # Config how you want to handle event processing errors
52
+ # config.error_handler_class = EventSourcery::EventProcessing::ErrorHandlers::ExponentialBackoffRetry
53
+ # end
54
+ #
55
+ # @see Config
34
56
  def self.configure
35
57
  yield config
36
58
  end
@@ -39,10 +61,16 @@ module EventSourcery
39
61
  @config ||= Config.new
40
62
  end
41
63
 
64
+ # Logger object used by EventSourcery. Set via `configure`.
65
+ #
66
+ # @see Config.logger
42
67
  def self.logger
43
68
  config.logger
44
69
  end
45
70
 
71
+ # Registry of all Event Stream Processors
72
+ #
73
+ # @return EventProcessing::EventStreamProcessorRegistry
46
74
  def self.event_stream_processor_registry
47
75
  @event_stream_processor_registry ||= EventProcessing::EventStreamProcessorRegistry.new
48
76
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: event_sourcery
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.14.0
4
+ version: 0.15.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Envato
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-06-21 00:00:00.000000000 Z
11
+ date: 2017-11-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -116,7 +116,9 @@ files:
116
116
  - lib/event_sourcery/event_store/poll_waiter.rb
117
117
  - lib/event_sourcery/event_store/signal_handling_subscription_master.rb
118
118
  - lib/event_sourcery/event_store/subscription.rb
119
+ - lib/event_sourcery/memory/config.rb
119
120
  - lib/event_sourcery/memory/event_store.rb
121
+ - lib/event_sourcery/memory/projector.rb
120
122
  - lib/event_sourcery/memory/tracker.rb
121
123
  - lib/event_sourcery/repository.rb
122
124
  - lib/event_sourcery/rspec/event_store_shared_examples.rb
@@ -140,7 +142,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
140
142
  version: '0'
141
143
  requirements: []
142
144
  rubyforge_project:
143
- rubygems_version: 2.6.11
145
+ rubygems_version: 2.6.8
144
146
  signing_key:
145
147
  specification_version: 4
146
148
  summary: Event Sourcing Library