event_sourcery 0.21.0 → 0.22.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: bab180e1a9e9380aad56c19810e3effb6911350010a4e1538711885fe177cd49
4
- data.tar.gz: 0c5ca78c052c3b8a61f7c9a4141038e25e77c9d1802aea80a6bc9b6045b5e255
3
+ metadata.gz: cf46fcd5b486df9da0777cf5a9753ef95a64ff7d3b983a26a5c1254453a6c967
4
+ data.tar.gz: e55d8cba2288e2498eae24f5fb31d8617d50b64349deecd083244089a104475a
5
5
  SHA512:
6
- metadata.gz: 4db8e9b04415d9dc57871f2ebd25a9e2cb70752e109ee4fec6b396fd11528ccdc660edf57a29e04373e62946eca596ebc56495da2ae17a0946decfeb0ef88ba1
7
- data.tar.gz: 232ee9d65f9e61545f5f914f5a8de5893495fa22ce515d818bd1dca07bf7da9992711233843e1bbbe01f894b8e8ddbcf148929f0ab69f84a47a78270cff356d9
6
+ metadata.gz: de46a745146463e05e3c0bf60e8c046edfcb7387aca6729fea77ed995dc5347cf4a229f6618f4bd6e701d7243e155e30a46d9f2febd29cce660dad0926bab782
7
+ data.tar.gz: 22e7a7a521f1bcc9923337203533a589930630f172cc931bdcf98545eb4090ee6ce5bb069bdec8f43a65a835c1d0ab7fc325d3c076b60909baeece0d85e6fcc4
data/CHANGELOG.md CHANGED
@@ -5,6 +5,17 @@ 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.22.0] - 2018-10-04
9
+ ### Added
10
+ - Log critical exceptions to the application provided block via the new
11
+ configuration option ([#209](https://github.com/envato/event_sourcery/pull/209)):
12
+
13
+ ```ruby
14
+ config.on_event_processor_critical_error = proc do |exception, processor_name|
15
+ # report the death of this processor to an error reporting service like Rollbar.
16
+ end
17
+ ```
18
+
8
19
  ## [0.21.0] - 2018-07-02
9
20
  ### Added
10
21
  - Graceful shutdown interrupts poll-wait sleep for quicker quitting
@@ -152,7 +163,8 @@ moving all Postgres related code into a separate gem.
152
163
  - EventSourcery no longer depends on Virtus.
153
164
  - `Command` and `CommandHandler` have been removed.
154
165
 
155
- [Unreleased]: https://github.com/envato/event_sourcery/compare/v0.21.0...HEAD
166
+ [Unreleased]: https://github.com/envato/event_sourcery/compare/v0.22.0...HEAD
167
+ [0.22.0]: https://github.com/envato/event_sourcery/compare/v0.21.0...v0.22.0
156
168
  [0.21.0]: https://github.com/envato/event_sourcery/compare/v0.20.0...v0.21.0
157
169
  [0.20.0]: https://github.com/envato/event_sourcery/compare/v0.19.0...v0.20.0
158
170
  [0.19.0]: https://github.com/envato/event_sourcery/compare/v0.18.0...v0.19.0
data/README.md CHANGED
@@ -67,6 +67,7 @@ EventSourcery.configure do |config|
67
67
  # Add custom reporting of errors occurring during event processing.
68
68
  # One might set up an error reporting service like Rollbar here.
69
69
  config.on_event_processor_error = proc { |exception, processor_name| … }
70
+ config.on_event_processor_critical_error = proc { |exception, processor_name| … }
70
71
 
71
72
  # Enable EventSourcery logging.
72
73
  config.logger = Logger.new('logs/my_event_sourcery_app.log')
@@ -19,6 +19,14 @@ module EventSourcery
19
19
  # @return Proc
20
20
  attr_accessor :on_event_processor_error
21
21
 
22
+ # A Proc to be executed on an event processor critical error.
23
+ # App defined behaviour can be provided. This will be called
24
+ # if an exception causes an a event processor to die.
25
+ # i.e. report to an error reporting service like Rollbar.
26
+ #
27
+ # @return Proc
28
+ attr_accessor :on_event_processor_critical_error
29
+
22
30
  # @return EventStore::EventTypeSerializers::Underscored
23
31
  attr_accessor :event_type_serializer
24
32
 
@@ -40,6 +48,9 @@ module EventSourcery
40
48
  @on_event_processor_error = proc { |exception, processor_name|
41
49
  # app specific custom logic ie. report to an error reporting service like Rollbar.
42
50
  }
51
+ @on_event_processor_critical_error = proc { |exception, processor_name|
52
+ # app specific custom logic ie. report to an error reporting service like Rollbar.
53
+ }
43
54
  @event_builder = nil
44
55
  @event_type_serializer = EventStore::EventTypeSerializers::Underscored.new
45
56
  @error_handler_class = EventProcessing::ErrorHandlers::ConstantRetry
@@ -26,6 +26,7 @@ module EventSourcery
26
26
  rescue Exception => e
27
27
  EventSourcery.logger.fatal("An unhandled exception occurred in #{processor_name}")
28
28
  EventSourcery.logger.fatal(e)
29
+ EventSourcery.config.on_event_processor_critical_error.call(e, processor_name)
29
30
  raise e
30
31
  end
31
32
 
@@ -1,4 +1,4 @@
1
1
  module EventSourcery
2
2
  # Defines the version
3
- VERSION = '0.21.0'.freeze
3
+ VERSION = '0.22.0'.freeze
4
4
  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.21.0
4
+ version: 0.22.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-07-01 00:00:00.000000000 Z
11
+ date: 2018-10-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler