synapse-core 0.5.5 → 0.5.6

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.
Files changed (54) hide show
  1. data/lib/synapse/auditing/audit_logger.rb +8 -4
  2. data/lib/synapse/auditing/correlation_data_provider.rb +4 -1
  3. data/lib/synapse/auditing/data_provider.rb +3 -1
  4. data/lib/synapse/command/command_bus.rb +14 -6
  5. data/lib/synapse/command/command_filter.rb +5 -3
  6. data/lib/synapse/command/command_handler.rb +5 -3
  7. data/lib/synapse/command/dispatch_interceptor.rb +5 -3
  8. data/lib/synapse/command/duplication.rb +3 -3
  9. data/lib/synapse/command/mapping.rb +1 -1
  10. data/lib/synapse/command/rollback_policy.rb +6 -4
  11. data/lib/synapse/domain/simple_stream.rb +2 -0
  12. data/lib/synapse/domain/stream.rb +10 -6
  13. data/lib/synapse/event_bus/clustering/cluster.rb +10 -0
  14. data/lib/synapse/event_bus/clustering/event_bus.rb +55 -0
  15. data/lib/synapse/event_bus/clustering/selector.rb +14 -0
  16. data/lib/synapse/event_bus/event_bus.rb +9 -3
  17. data/lib/synapse/event_bus/event_listener.rb +5 -3
  18. data/lib/synapse/event_bus/mapping.rb +7 -4
  19. data/lib/synapse/event_sourcing/aggregate_factory.rb +6 -2
  20. data/lib/synapse/event_sourcing/conflict_resolver.rb +11 -0
  21. data/lib/synapse/event_sourcing/member.rb +1 -1
  22. data/lib/synapse/event_sourcing/snapshot/policy.rb +3 -1
  23. data/lib/synapse/event_sourcing/snapshot/taker.rb +3 -1
  24. data/lib/synapse/event_store/event_store.rb +12 -6
  25. data/lib/synapse/event_store/in_memory.rb +2 -2
  26. data/lib/synapse/mapping/mapping.rb +8 -2
  27. data/lib/synapse/process_manager/correlation.rb +2 -2
  28. data/lib/synapse/process_manager/correlation_resolver.rb +5 -3
  29. data/lib/synapse/process_manager/mapping/process.rb +4 -5
  30. data/lib/synapse/process_manager/pessimistic_lock_manager.rb +2 -2
  31. data/lib/synapse/process_manager/process.rb +3 -1
  32. data/lib/synapse/process_manager/process_factory.rb +6 -2
  33. data/lib/synapse/process_manager/process_manager.rb +6 -2
  34. data/lib/synapse/process_manager/process_repository.rb +14 -6
  35. data/lib/synapse/repository/lock_manager.rb +17 -3
  36. data/lib/synapse/repository/locking.rb +3 -1
  37. data/lib/synapse/repository/repository.rb +15 -5
  38. data/lib/synapse/serialization/converter.rb +3 -1
  39. data/lib/synapse/serialization/message/serialization_aware.rb +6 -2
  40. data/lib/synapse/serialization/revision_resolver.rb +3 -1
  41. data/lib/synapse/serialization/serializer.rb +9 -3
  42. data/lib/synapse/uow/nesting.rb +18 -6
  43. data/lib/synapse/uow/transaction_manager.rb +11 -5
  44. data/lib/synapse/upcasting/single_upcaster.rb +15 -16
  45. data/lib/synapse/upcasting/upcaster.rb +20 -17
  46. data/lib/synapse/upcasting/upcaster_chain.rb +2 -2
  47. data/lib/synapse/version.rb +1 -1
  48. data/test/auditing/data_provider_test.rb +9 -1
  49. data/test/command/mapping_test.rb +8 -2
  50. data/test/event_bus/mapping_test.rb +7 -2
  51. data/test/event_sourcing/repository_test.rb +1 -1
  52. data/test/repository/locking_test.rb +3 -0
  53. data/test/upcasting/fixtures.rb +3 -8
  54. metadata +5 -2
@@ -12,7 +12,9 @@ module Synapse
12
12
  # @param [Class] type
13
13
  # @param [Correlation] correlation
14
14
  # @return [Set]
15
- def find(type, correlation); end
15
+ def find(type, correlation)
16
+ raise NotImplementedError
17
+ end
16
18
 
17
19
  # Loads a known process by its unique identifier
18
20
  #
@@ -25,7 +27,9 @@ module Synapse
25
27
  # @abstract
26
28
  # @param [String] id
27
29
  # @return [Process] Returns nil if process could not be found
28
- def load(id); end
30
+ def load(id)
31
+ raise NotImplementedError
32
+ end
29
33
 
30
34
  # Commits the changes made to the process instance
31
35
  #
@@ -35,7 +39,9 @@ module Synapse
35
39
  # @abstract
36
40
  # @param [Process] process
37
41
  # @return [undefined]
38
- def commit(process); end
42
+ def commit(process)
43
+ raise NotImplementedError
44
+ end
39
45
 
40
46
  # Registers a newly created process with the repository
41
47
  #
@@ -47,7 +53,9 @@ module Synapse
47
53
  # @abstract
48
54
  # @param [Process] process
49
55
  # @return [undefined]
50
- def add(process); end
51
- end
52
- end
56
+ def add(process)
57
+ raise NotImplementedError
58
+ end
59
+ end # ProcessRepository
60
+ end # ProcessManager
53
61
  end
@@ -8,7 +8,9 @@ module Synapse
8
8
  # @abstract
9
9
  # @param [AggregateRoot] aggregate
10
10
  # @return [Boolean]
11
- def validate_lock(aggregate); end
11
+ def validate_lock(aggregate)
12
+ raise NotImplementedError
13
+ end
12
14
 
13
15
  # Obtains a lock for an aggregate with the given aggregate identifier. Depending on
14
16
  # the strategy, this method may return immediately or block until a lock is held.
@@ -16,7 +18,9 @@ module Synapse
16
18
  # @abstract
17
19
  # @param [Object] aggregate_id
18
20
  # @return [undefined]
19
- def obtain_lock(aggregate_id); end
21
+ def obtain_lock(aggregate_id)
22
+ raise NotImplementedError
23
+ end
20
24
 
21
25
  # Releases the lock held for an aggregate with the given aggregate identifier. The caller
22
26
  # of this method must ensure a valid lock was requested using {#obtain_lock}. If no lock
@@ -25,7 +29,9 @@ module Synapse
25
29
  # @abstract
26
30
  # @param [Object] aggregate_id
27
31
  # @return [undefined]
28
- def release_lock(aggregate_id); end
32
+ def release_lock(aggregate_id)
33
+ raise NotImplementedError
34
+ end
29
35
  end # LockManager
30
36
 
31
37
  # Implementation of a lock manager that does no locking
@@ -35,6 +41,14 @@ module Synapse
35
41
  def validate_lock(aggregate)
36
42
  true
37
43
  end
44
+
45
+ # @param [Object] aggregate_id
46
+ # @return [undefined]
47
+ def obtain_lock(aggregate_id); end
48
+
49
+ # @param [Object] aggregate_id
50
+ # @return [undefined]
51
+ def release_lock(aggregate_id); end
38
52
  end # NullLockManager
39
53
  end # Repository
40
54
  end
@@ -70,7 +70,9 @@ module Synapse
70
70
  # @param [Object] aggregate_id
71
71
  # @param [Integer] expected_version
72
72
  # @return [AggregateRoot]
73
- def perform_load(aggregate_id, expected_version); end
73
+ def perform_load(aggregate_id, expected_version)
74
+ raise NotImplementedError
75
+ end
74
76
 
75
77
  # Hook that is called after an aggregate is registered to the current unit of work
76
78
  #
@@ -26,7 +26,9 @@ module Synapse
26
26
  # @param [Object] aggregate_id
27
27
  # @param [Integer] expected_version If this is nil, no version validation is performed
28
28
  # @return [AggregateRoot]
29
- def load(aggregate_id, expected_version = nil); end
29
+ def load(aggregate_id, expected_version = nil)
30
+ raise NotImplementedError
31
+ end
30
32
 
31
33
  # Adds a new, unmanaged aggregate to the repository
32
34
  #
@@ -38,7 +40,9 @@ module Synapse
38
40
  # @raise [ArgumentError] If the version of the aggregate is not null
39
41
  # @param [AggregateRoot] aggregate
40
42
  # @return [undefined]
41
- def add(aggregate); end
43
+ def add(aggregate)
44
+ raise NotImplementedError
45
+ end
42
46
 
43
47
  protected
44
48
 
@@ -46,21 +50,27 @@ module Synapse
46
50
  #
47
51
  # @abstract
48
52
  # @return [Class]
49
- def aggregate_type; end
53
+ def aggregate_type
54
+ raise NotImplementedError
55
+ end
50
56
 
51
57
  # Deletes the given aggregate from the underlying storage mechanism
52
58
  #
53
59
  # @abstract
54
60
  # @param [AggregateRoot] aggregate
55
61
  # @return [undefined]
56
- def delete_aggregate(aggregate); end
62
+ def delete_aggregate(aggregate)
63
+ raise NotImplementedError
64
+ end
57
65
 
58
66
  # Saves the given aggregate using the underlying storage mechanism
59
67
  #
60
68
  # @abstract
61
69
  # @param [AggregateRoot] aggregate
62
70
  # @return [undefined]
63
- def save_aggregate(aggregate); end
71
+ def save_aggregate(aggregate)
72
+ raise NotImplementedError
73
+ end
64
74
 
65
75
  # Asserts that an aggregate being added is compatible with this repository and is newly
66
76
  # created
@@ -33,7 +33,9 @@ module Synapse
33
33
  # @abstract
34
34
  # @param [Object] original
35
35
  # @return [Object]
36
- def convert_content(original); end
36
+ def convert_content(original)
37
+ raise NotImplementedError
38
+ end
37
39
  end # Converter
38
40
  end # Serialization
39
41
  end
@@ -6,12 +6,16 @@ module Synapse
6
6
  # @param [Serializer] serializer
7
7
  # @param [Class] expected_type
8
8
  # @return [SerializedObject]
9
- def serialize_metadata(serializer, expected_type); end
9
+ def serialize_metadata(serializer, expected_type)
10
+ raise NotImplementedError
11
+ end
10
12
 
11
13
  # @param [Serializer] serializer
12
14
  # @param [Class] expected_type
13
15
  # @return [SerializedObject]
14
- def serialize_payload(serializer, expected_type); end
16
+ def serialize_payload(serializer, expected_type)
17
+ raise NotImplementedError
18
+ end
15
19
  end # SerializationAware
16
20
  end # Serialization
17
21
  end
@@ -8,7 +8,9 @@ module Synapse
8
8
  # @abstract
9
9
  # @param [Class] payload_type
10
10
  # @return [String] The revision of the given payload type
11
- def revision_of(payload_type); end
11
+ def revision_of(payload_type)
12
+ raise NotImplementedError
13
+ end
12
14
  end # RevisionResolver
13
15
 
14
16
  # Implementation of a revision resolver that returns a fixed value. This could be an
@@ -68,7 +68,9 @@ module Synapse
68
68
  # @abstract
69
69
  # @param [Object] content The original Ruby object to serialize
70
70
  # @return [Object] Should be in the native content type of the serializer
71
- def perform_serialize(content); end
71
+ def perform_serialize(content)
72
+ raise NotImplementedError
73
+ end
72
74
 
73
75
  # Deserializes the given serialized content into the given Ruby type
74
76
  #
@@ -76,13 +78,17 @@ module Synapse
76
78
  # @param [Object] content Should be in the native content type of the serializer
77
79
  # @param [Class] type The class type to be deserialized into
78
80
  # @return [Object] The deserialized object
79
- def perform_deserialize(content, type); end
81
+ def perform_deserialize(content, type)
82
+ raise NotImplementedError
83
+ end
80
84
 
81
85
  # Returns the native content type that the serializer works with
82
86
  #
83
87
  # @abstract
84
88
  # @return [Class]
85
- def native_content_type; end
89
+ def native_content_type
90
+ raise NotImplementedError
91
+ end
86
92
 
87
93
  private
88
94
 
@@ -121,38 +121,50 @@ module Synapse
121
121
  #
122
122
  # @abstract
123
123
  # @return [undefined]
124
- def perform_commit; end
124
+ def perform_commit
125
+ raise NotImplementedError
126
+ end
125
127
 
126
128
  # Executes logic required to rollback this unit of work
127
129
  #
128
130
  # @abstract
129
131
  # @param [Error] cause
130
132
  # @return [undefined]
131
- def perform_rollback(cause = nil); end
133
+ def perform_rollback(cause = nil)
134
+ raise NotImplementedError
135
+ end
132
136
 
133
137
  # Notifies listeners that this unit of work is cleaning up
134
138
  #
135
139
  # @abstract
136
140
  # @return [undefined]
137
- def notify_cleanup; end
141
+ def notify_cleanup
142
+ raise NotImplementedError
143
+ end
138
144
 
139
145
  # Notifies listeners that this unit of work is preparing to be committed
140
146
  #
141
147
  # @abstract
142
148
  # @return [undefined]
143
- def notify_prepare_commit; end
149
+ def notify_prepare_commit
150
+ raise NotImplementedError
151
+ end
144
152
 
145
153
  # Executes logic required when starting this unit of work
146
154
  #
147
155
  # @abstract
148
156
  # @return [undefined]
149
- def perform_start; end
157
+ def perform_start
158
+ raise NotImplementedError
159
+ end
150
160
 
151
161
  # Storages aggregates registered with this unit of work
152
162
  #
153
163
  # @abstract
154
164
  # @return [undefined]
155
- def store_aggregates; end
165
+ def store_aggregates
166
+ raise NotImplementedError
167
+ end
156
168
 
157
169
  # Commits all registered inner units of work. This should be invoked after events have been
158
170
  # dispatched and before any listeners are notified of the commit.
@@ -9,19 +9,25 @@ module Synapse
9
9
  #
10
10
  # @abstract
11
11
  # @return [Object]
12
- def start; end
12
+ def start
13
+ raise NotImplementedError
14
+ end
13
15
 
14
16
  # Commits the given transaction
15
17
  #
16
18
  # @param [Object] transaction
17
19
  # @return [undefined]
18
- def commit(transaction); end
20
+ def commit(transaction)
21
+ raise NotImplementedError
22
+ end
19
23
 
20
24
  # Rolls back the given transaction
21
25
  #
22
26
  # @param [Object] transaction
23
27
  # @return [undefined]
24
- def rollback(transaction); end
25
- end
26
- end
28
+ def rollback(transaction)
29
+ raise NotImplementedError
30
+ end
31
+ end # TransactionManager
32
+ end # UnitOfWork
27
33
  end
@@ -6,21 +6,18 @@ module Synapse
6
6
  # This mixin is not suitable if an upcaster needs to upcast a serialized object into multiple
7
7
  # newer serialized objects, or when the output representation type is not the same as the
8
8
  # expected representation type.
9
- module SingleUpcaster
10
- extend ActiveSupport::Concern
11
- include Upcaster
12
-
9
+ #
10
+ # @abstract
11
+ class SingleUpcaster < Upcaster
13
12
  # @param [SerialiedObject] intermediate
14
13
  # @param [Array<SerializedType>] expected_types
15
14
  # @param [UpcastingContext] upcast_context
16
15
  # @return [Array<SerializedObject>]
17
16
  def upcast(intermediate, expected_types, upcast_context)
18
- upcast_content = perform_upcast(intermediate, upcast_context)
17
+ upcast_content = perform_upcast intermediate, upcast_context
19
18
  upcast_objects = Array.new
20
19
 
21
- unless upcast_content
22
- return upcast_objects
23
- end
20
+ return upcast_objects unless upcast_content
24
21
 
25
22
  upcast_objects.push Serialization::SerializedObject.new(upcast_content, expected_content_type, expected_types.at(0))
26
23
  upcast_objects
@@ -29,12 +26,10 @@ module Synapse
29
26
  # @param [SerializedType] serialized_type
30
27
  # @return [Array<SerializedType>]
31
28
  def upcast_type(serialized_type)
32
- upcast_type = perform_upcast_type(serialized_type)
29
+ upcast_type = perform_upcast_type serialized_type
33
30
  upcast_types = Array.new
34
31
 
35
- unless upcast_type
36
- return upcast_types
37
- end
32
+ return upcast_types unless upcast_type
38
33
 
39
34
  upcast_types.push upcast_type
40
35
  upcast_types
@@ -46,12 +41,16 @@ module Synapse
46
41
  # @param [SerializedObject] intermediate
47
42
  # @param [UpcastingContext] upcast_context
48
43
  # @return [Object] If nil is returned, the serialized object will be dropped
49
- def perform_upcast(intermediate, upcast_context); end
44
+ def perform_upcast(intermediate, upcast_context)
45
+ raise NotImplementedError
46
+ end
50
47
 
51
48
  # @abstract
52
49
  # @param [SerializedType] serialized_type
53
50
  # @return [SerializedType] If nil is returned, the serialized object will be dropped
54
- def perform_upcast_type(serialized_type); end
55
- end
56
- end
51
+ def perform_upcast_type(serialized_type)
52
+ raise NotImplementedError
53
+ end
54
+ end # SingleUpcaster
55
+ end # Upcasting
57
56
  end
@@ -10,19 +10,16 @@ module Synapse
10
10
  #
11
11
  # For performance reasons, it is advisable to ensure that all upcasters in the same chain use
12
12
  # the same intermediate representation type.
13
- module Upcaster
14
- extend ActiveSupport::Concern
15
-
16
- included do
17
- class_attribute :expected_content_type
18
- end
13
+ #
14
+ # @abstract
15
+ class Upcaster
16
+ # @return [Class]
17
+ class_attribute :expected_content_type
19
18
 
20
- module ClassMethods
21
- # @param [Class] type
22
- # @return [undefined]
23
- def expects_content_type(type)
24
- self.expected_content_type = type
25
- end
19
+ # @param [Class] type
20
+ # @return [undefined]
21
+ def self.expects_content_type(type)
22
+ self.expected_content_type = type
26
23
  end
27
24
 
28
25
  # Returns true if this upcaster is capable of upcasting the given type
@@ -30,7 +27,9 @@ module Synapse
30
27
  # @abstract
31
28
  # @param [SerializedType] serialized_type
32
29
  # @return [Boolean]
33
- def can_upcast?(serialized_type); end
30
+ def can_upcast?(serialized_type)
31
+ raise NotImplementedError
32
+ end
34
33
 
35
34
  # Upcasts a given serialized object to zero or more upcast objects
36
35
  #
@@ -42,14 +41,18 @@ module Synapse
42
41
  # @param [Array<SerializedType>] expected_types
43
42
  # @param [UpcastingContext] upcast_context
44
43
  # @return [Array<SerializedObject>]
45
- def upcast(intermediate, expected_types, upcast_context); end
44
+ def upcast(intermediate, expected_types, upcast_context)
45
+ raise NotImplementedError
46
+ end
46
47
 
47
48
  # Upcasts a given serialized type to zero or more upcast types
48
49
  #
49
50
  # @abstract
50
51
  # @param [SerializedType] serialized_type
51
52
  # @return [Array<SerializedType>]
52
- def upcast_type(serialized_type); end
53
- end
54
- end
53
+ def upcast_type(serialized_type)
54
+ raise NotImplementedError
55
+ end
56
+ end # Upcaster
57
+ end # Upcasting
55
58
  end
@@ -32,7 +32,7 @@ module Synapse
32
32
  serialized_objects.push serialized_object
33
33
 
34
34
  @upcasters.each do |upcaster|
35
- serialized_objects = upcast_objects(upcaster, serialized_objects, upcast_context)
35
+ serialized_objects = upcast_objects upcaster, serialized_objects, upcast_context
36
36
  end
37
37
 
38
38
  serialized_objects
@@ -46,7 +46,7 @@ module Synapse
46
46
  # @param [UpcastingContent] upcast_context
47
47
  # @return [Array<SerializedObject>]
48
48
  def perform_upcast(upcaster, representation, expected_types, upcast_context)
49
- upcaster.upcast(representation, expected_types, upcast_context)
49
+ upcaster.upcast representation, expected_types, upcast_context
50
50
  end
51
51
 
52
52
  private
@@ -1,3 +1,3 @@
1
1
  module Synapse
2
- VERSION = '0.5.5'
2
+ VERSION = '0.5.6'
3
3
  end
@@ -18,12 +18,20 @@ module Synapse
18
18
 
19
19
  class CorrelationDataProviderTest < Test::Unit::TestCase
20
20
  should 'provide the identifier of a command for auditing' do
21
- provider = CorrelationDataProvider.new :command_id
21
+ provider = CorrelationDataProvider.new
22
22
  command = Command::CommandMessage.build
23
23
 
24
24
  expected = { :command_id => command.id }
25
25
  assert_equal expected, provider.provide_data_for(command)
26
26
  end
27
+
28
+ should 'provide the identifier of a command for auditing using an alternate key' do
29
+ provider = CorrelationDataProvider.new :correlation_id
30
+ command = Command::CommandMessage.build
31
+
32
+ expected = { :correlation_id => command.id }
33
+ assert_equal expected, provider.provide_data_for(command)
34
+ end
27
35
  end
28
36
 
29
37
  end
@@ -60,11 +60,17 @@ module Synapse
60
60
 
61
61
  attr_accessor :handled, :sub_handled
62
62
 
63
- map_command TestCommand do |command|
63
+ map_command TestCommand do |command, message, current_unit|
64
+ raise ArgumentError unless TestCommand === command
65
+ raise ArgumentError unless CommandMessage === message
66
+ raise ArgumentError if current_unit.nil?
67
+
64
68
  @handled = true
65
69
  end
66
70
 
67
- map_command TestSubCommand do |command|
71
+ map_command TestSubCommand, :to => :on_sub
72
+
73
+ def on_sub(command)
68
74
  @sub_handled = true
69
75
  end
70
76
  end
@@ -33,11 +33,16 @@ module Synapse
33
33
 
34
34
  attr_accessor :handled, :sub_handled
35
35
 
36
- map_event TestEvent do |event|
36
+ map_event TestEvent do |event, message|
37
+ raise ArgumentError unless TestEvent === event
38
+ raise ArgumentError unless Domain::EventMessage === message
39
+
37
40
  @handled = true
38
41
  end
39
42
 
40
- map_event TestSubEvent do |event|
43
+ map_event TestSubEvent, :to => :on_sub
44
+
45
+ def on_sub(event)
41
46
  @sub_handled = true
42
47
  end
43
48
  end
@@ -71,7 +71,7 @@ module Synapse
71
71
  end
72
72
 
73
73
  should 'defer version checking to a conflict resolver if one is set' do
74
- @repository.conflict_resolver = ConflictResolver.new
74
+ @repository.conflict_resolver = AcceptAllConflictResolver.new
75
75
 
76
76
  event_a = create_event(123, 0, StubCreatedEvent.new(123))
77
77
  event_b = create_event(123, 1, StubChangedEvent.new)
@@ -87,6 +87,9 @@ module Synapse
87
87
  def aggregate_type
88
88
  TestAggregateRoot
89
89
  end
90
+
91
+ def save_aggregate(aggregate); end
92
+ def delete_aggregate(aggregate); end
90
93
  end
91
94
  end
92
95
  end
@@ -1,7 +1,6 @@
1
1
  module Synapse
2
2
  module Upcasting
3
- class TestSplitUpcaster
4
- include Upcaster
3
+ class TestSplitUpcaster < Upcaster
5
4
 
6
5
  expects_content_type Object
7
6
 
@@ -28,9 +27,7 @@ module Synapse
28
27
  end
29
28
  end
30
29
 
31
- class TestTypeUpcaster
32
- include SingleUpcaster
33
-
30
+ class TestTypeUpcaster < SingleUpcaster
34
31
  expects_content_type Object
35
32
 
36
33
  def can_upcast?(serialized_type)
@@ -48,9 +45,7 @@ module Synapse
48
45
  end
49
46
  end
50
47
 
51
- class TestPhaseOutUpcaster
52
- include SingleUpcaster
53
-
48
+ class TestPhaseOutUpcaster < SingleUpcaster
54
49
  expects_content_type Object
55
50
 
56
51
  def can_upcast?(serialized_type)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: synapse-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.5
4
+ version: 0.5.6
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-06-13 00:00:00.000000000 Z
12
+ date: 2013-06-18 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
@@ -157,6 +157,9 @@ files:
157
157
  - lib/synapse/domain/simple_stream.rb
158
158
  - lib/synapse/domain/stream.rb
159
159
  - lib/synapse/domain.rb
160
+ - lib/synapse/event_bus/clustering/cluster.rb
161
+ - lib/synapse/event_bus/clustering/event_bus.rb
162
+ - lib/synapse/event_bus/clustering/selector.rb
160
163
  - lib/synapse/event_bus/event_bus.rb
161
164
  - lib/synapse/event_bus/event_listener.rb
162
165
  - lib/synapse/event_bus/event_publisher.rb