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.
- 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
|