event_sourcery 0.14.0 → 0.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +11 -0
- data/README.md +3 -1
- data/lib/event_sourcery/aggregate_root.rb +80 -1
- data/lib/event_sourcery/config.rb +32 -5
- data/lib/event_sourcery/errors.rb +8 -3
- data/lib/event_sourcery/event.rb +61 -0
- data/lib/event_sourcery/event_body_serializer.rb +16 -0
- data/lib/event_sourcery/event_processing/error_handlers/constant_retry.rb +9 -2
- data/lib/event_sourcery/event_processing/error_handlers/error_handler.rb +4 -1
- data/lib/event_sourcery/event_processing/error_handlers/exponential_backoff_retry.rb +15 -6
- data/lib/event_sourcery/event_processing/error_handlers/no_retry.rb +1 -0
- data/lib/event_sourcery/event_processing/esp_process.rb +6 -1
- data/lib/event_sourcery/event_processing/esp_runner.rb +2 -0
- data/lib/event_sourcery/event_processing/event_stream_processor.rb +42 -1
- data/lib/event_sourcery/event_processing/event_stream_processor_registry.rb +16 -0
- data/lib/event_sourcery/event_store/poll_waiter.rb +10 -0
- data/lib/event_sourcery/event_store/signal_handling_subscription_master.rb +7 -0
- data/lib/event_sourcery/event_store/subscription.rb +15 -0
- data/lib/event_sourcery/memory/config.rb +36 -0
- data/lib/event_sourcery/memory/event_store.rb +59 -0
- data/lib/event_sourcery/memory/projector.rb +25 -0
- data/lib/event_sourcery/memory/tracker.rb +19 -0
- data/lib/event_sourcery/repository.rb +28 -0
- data/lib/event_sourcery/rspec/event_store_shared_examples.rb +59 -74
- data/lib/event_sourcery/version.rb +2 -1
- data/lib/event_sourcery.rb +28 -0
- metadata +5 -3
data/lib/event_sourcery.rb
CHANGED
@@ -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.
|
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-
|
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.
|
145
|
+
rubygems_version: 2.6.8
|
144
146
|
signing_key:
|
145
147
|
specification_version: 4
|
146
148
|
summary: Event Sourcing Library
|