event_sourcery 0.17.0 → 0.18.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 -7
- data/lib/event_sourcery/config.rb +4 -0
- data/lib/event_sourcery/event_store/subscription.rb +6 -2
- data/lib/event_sourcery/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9c7c7b7c9f5d07418f3e80f02c63d1dfbc397f3c
|
4
|
+
data.tar.gz: eb76565e36cae2e0fbf37f1917d1066658a6dccf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5004d3f6ad1f82519f9afe698ec2fcd7ccc57fae439fb6d5fc322f079022d47d6d2cdd73601cfe3f31ad93938d9d47be8966607cf5bb0801ca814164a4ca30ab
|
7
|
+
data.tar.gz: fc2262344a767d9c0d5ee8b1bdde83feb15471ae7536f8565717087bb3322f3110c7b6d4ac5dd25000352a6db1350ab17e9d3895de6ef60e3c58ffc23f1990f7
|
data/CHANGELOG.md
CHANGED
@@ -5,6 +5,10 @@ All notable changes to this project will be documented in this file.
|
|
5
5
|
The format is based on [Keep a Changelog](http://keepachangelog.com/)
|
6
6
|
and this project adheres to [Semantic Versioning](http://semver.org/).
|
7
7
|
|
8
|
+
## [0.18.0] - 2018-05-23
|
9
|
+
|
10
|
+
- Allow specifying a subscription batch size
|
11
|
+
|
8
12
|
## [0.17.0] - 2018-03-22
|
9
13
|
### Added
|
10
14
|
- Allow changing the event class using Event#with
|
@@ -40,7 +44,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
|
|
40
44
|
- Fixed typo in constant name `EventSourcery::EventProcessing::ErrorHandlers::ExponentialBackoffRetry::MAX_RETRY_INTERVAL`
|
41
45
|
- Errors of type `Exception` are now logged before being allowed to propagate.
|
42
46
|
|
43
|
-
## [0.14.0] - 2016-
|
47
|
+
## [0.14.0] - 2016-06-21
|
44
48
|
### Added
|
45
49
|
- Added `Event#to_h` method. This returns a hash of the event attributes.
|
46
50
|
- Added `Event#with` method. This provides a way to create a new event
|
@@ -48,7 +52,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
|
|
48
52
|
- `Event#initialize` accepts `aggregate_id` parameter that either is
|
49
53
|
a strings or responds to `to_str`.
|
50
54
|
|
51
|
-
## [0.13.0] - 2016-
|
55
|
+
## [0.13.0] - 2016-06-16
|
52
56
|
### Added
|
53
57
|
- The core Event class accepts `causation_id` to allow event stores to
|
54
58
|
add support for tracking causation ids with events.
|
@@ -63,27 +67,27 @@ and this project adheres to [Semantic Versioning](http://semver.org/).
|
|
63
67
|
be a mechanism to wrap processing and tracker updates which appears to be
|
64
68
|
universally unused at this point.
|
65
69
|
|
66
|
-
## [0.12.0] - 2017-
|
70
|
+
## [0.12.0] - 2017-06-01
|
67
71
|
### Removed
|
68
72
|
- Removed usage `#shutdown!` as it should be a private method within custom PollWaiters.
|
69
73
|
An example of how event_sourcery-postgres has implemented `#shutdown!` can be
|
70
74
|
found [here](https://github.com/envato/event_sourcery-postgres/pull/5)
|
71
75
|
|
72
|
-
## [0.11.2] - 2017-
|
76
|
+
## [0.11.2] - 2017-05-29
|
73
77
|
### Fixed
|
74
78
|
- Fixed: default poll waiter now implements `shutdown!`
|
75
79
|
|
76
|
-
## [0.11.1] - 2017-
|
80
|
+
## [0.11.1] - 2017-05-29
|
77
81
|
### Fixed
|
78
82
|
- Use `processor.class.name` to set ESP process name
|
79
83
|
- Convert `processor_name` symbol to string explicitly
|
80
84
|
|
81
|
-
## [0.11.0] - 2017-
|
85
|
+
## [0.11.0] - 2017-05-26
|
82
86
|
### Added
|
83
87
|
- Make Event processing error handler class Configurable
|
84
88
|
- Add exponential back off retry error handler
|
85
89
|
|
86
|
-
## [0.10.0] - 2017-
|
90
|
+
## [0.10.0] - 2017-05-24
|
87
91
|
### Added
|
88
92
|
- The core Event class accepts `correlation_id` to allow event stores to
|
89
93
|
add support for tracking correlation IDs with events.
|
@@ -29,6 +29,9 @@ module EventSourcery
|
|
29
29
|
:event_body_serializer,
|
30
30
|
:event_builder
|
31
31
|
|
32
|
+
# @return Integer
|
33
|
+
attr_accessor :subscription_batch_size
|
34
|
+
|
32
35
|
# @api private
|
33
36
|
def initialize
|
34
37
|
@on_unknown_event = proc { |event, aggregate|
|
@@ -40,6 +43,7 @@ module EventSourcery
|
|
40
43
|
@event_builder = nil
|
41
44
|
@event_type_serializer = EventStore::EventTypeSerializers::Underscored.new
|
42
45
|
@error_handler_class = EventProcessing::ErrorHandlers::ConstantRetry
|
46
|
+
@subscription_batch_size = 1000
|
43
47
|
end
|
44
48
|
|
45
49
|
# Logger instance used by EventSourcery.
|
@@ -18,7 +18,8 @@ module EventSourcery
|
|
18
18
|
event_types: nil,
|
19
19
|
on_new_events:,
|
20
20
|
subscription_master:,
|
21
|
-
events_table_name: :events
|
21
|
+
events_table_name: :events,
|
22
|
+
batch_size: EventSourcery.config.subscription_batch_size)
|
22
23
|
@event_store = event_store
|
23
24
|
@from_event_id = from_event_id
|
24
25
|
@poll_waiter = poll_waiter
|
@@ -26,6 +27,7 @@ module EventSourcery
|
|
26
27
|
@on_new_events = on_new_events
|
27
28
|
@subscription_master = subscription_master
|
28
29
|
@current_event_id = from_event_id - 1
|
30
|
+
@batch_size = batch_size
|
29
31
|
end
|
30
32
|
|
31
33
|
# Start listening for new events. This method will continue to listen for new events until a shutdown is requested
|
@@ -42,10 +44,12 @@ module EventSourcery
|
|
42
44
|
|
43
45
|
private
|
44
46
|
|
47
|
+
attr_reader :batch_size
|
48
|
+
|
45
49
|
def read_events
|
46
50
|
loop do
|
47
51
|
@subscription_master.shutdown_if_requested
|
48
|
-
events = @event_store.get_next_from(@current_event_id + 1, event_types: @event_types)
|
52
|
+
events = @event_store.get_next_from(@current_event_id + 1, event_types: @event_types, limit: batch_size)
|
49
53
|
break if events.empty?
|
50
54
|
EventSourcery.logger.debug { "New events in subscription: #{events.inspect}" }
|
51
55
|
@on_new_events.call(events)
|
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.18.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Envato
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-05-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -142,7 +142,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
142
142
|
version: '0'
|
143
143
|
requirements: []
|
144
144
|
rubyforge_project:
|
145
|
-
rubygems_version: 2.
|
145
|
+
rubygems_version: 2.5.2
|
146
146
|
signing_key:
|
147
147
|
specification_version: 4
|
148
148
|
summary: Event Sourcing Library
|