Module: Synapse

Extended by:
ActiveSupport::Autoload
Defined in:
lib/synapse.rb,
lib/synapse/command.rb,
lib/synapse/railtie.rb,
lib/synapse/uow/uow.rb,
lib/synapse/version.rb,
lib/synapse/uow/factory.rb,
lib/synapse/uow/nesting.rb,
lib/synapse/uow/listener.rb,
lib/synapse/uow/provider.rb,
lib/synapse/common/errors.rb,
lib/synapse/domain/errors.rb,
lib/synapse/domain/stream.rb,
lib/synapse/serialization.rb,
lib/synapse/command/errors.rb,
lib/synapse/common/message.rb,
lib/synapse/domain/message.rb,
lib/synapse/mapping/mapper.rb,
lib/synapse/upcasting/data.rb,
lib/synapse/command/gateway.rb,
lib/synapse/command/mapping.rb,
lib/synapse/command/message.rb,
lib/synapse/mapping/mapping.rb,
lib/synapse/common/identifier.rb,
lib/synapse/configuration/ext.rb,
lib/synapse/event_bus/mapping.rb,
lib/synapse/repository/errors.rb,
lib/synapse/upcasting/context.rb,
lib/synapse/common/duplication.rb,
lib/synapse/event_store/errors.rb,
lib/synapse/repository/locking.rb,
lib/synapse/upcasting/upcaster.rb,
lib/synapse/command/command_bus.rb,
lib/synapse/command/duplication.rb,
lib/synapse/event_bus/event_bus.rb,
lib/synapse/domain/simple_stream.rb,
lib/synapse/serialization/errors.rb,
lib/synapse/auditing/audit_logger.rb,
lib/synapse/domain/aggregate_root.rb,
lib/synapse/event_sourcing/entity.rb,
lib/synapse/event_sourcing/member.rb,
lib/synapse/event_store/in_memory.rb,
lib/synapse/repository/repository.rb,
lib/synapse/auditing/data_provider.rb,
lib/synapse/auditing/unit_listener.rb,
lib/synapse/command/command_filter.rb,
lib/synapse/common/message_builder.rb,
lib/synapse/domain/event_container.rb,
lib/synapse/domain/message_builder.rb,
lib/synapse/event_sourcing/caching.rb,
lib/synapse/rails/injection_helper.rb,
lib/synapse/command/command_handler.rb,
lib/synapse/command/rollback_policy.rb,
lib/synapse/configuration/container.rb,
lib/synapse/configuration/dependent.rb,
lib/synapse/event_store/event_store.rb,
lib/synapse/process_manager/process.rb,
lib/synapse/repository/lock_manager.rb,
lib/synapse/serialization/converter.rb,
lib/synapse/uow/listener_collection.rb,
lib/synapse/uow/transaction_manager.rb,
lib/synapse/command/callbacks/future.rb,
lib/synapse/command/command_callback.rb,
lib/synapse/configuration/definition.rb,
lib/synapse/event_bus/event_listener.rb,
lib/synapse/serialization/serializer.rb,
lib/synapse/upcasting/upcaster_chain.rb,
lib/synapse/command/async_command_bus.rb,
lib/synapse/command/interceptor_chain.rb,
lib/synapse/event_bus/event_publisher.rb,
lib/synapse/event_sourcing/repository.rb,
lib/synapse/serialization/lazy_object.rb,
lib/synapse/upcasting/single_upcaster.rb,
lib/synapse/command/filters/validation.rb,
lib/synapse/command/simple_command_bus.rb,
lib/synapse/event_bus/simple_event_bus.rb,
lib/synapse/serialization/converter/ox.rb,
lib/synapse/serialization/message/data.rb,
lib/synapse/configuration/component/uow.rb,
lib/synapse/process_manager/correlation.rb,
lib/synapse/serialization/serializer/oj.rb,
lib/synapse/serialization/serializer/ox.rb,
lib/synapse/command/dispatch_interceptor.rb,
lib/synapse/event_bus/clustering/cluster.rb,
lib/synapse/process_manager/lock_manager.rb,
lib/synapse/repository/simple_repository.rb,
lib/synapse/serialization/converter/json.rb,
lib/synapse/auditing/dispatch_interceptor.rb,
lib/synapse/event_bus/clustering/selector.rb,
lib/synapse/event_sourcing/aggregate_root.rb,
lib/synapse/event_sourcing/snapshot/taker.rb,
lib/synapse/serialization/converter/chain.rb,
lib/synapse/serialization/serialized_type.rb,
lib/synapse/common/concurrency/public_lock.rb,
lib/synapse/event_bus/clustering/event_bus.rb,
lib/synapse/event_sourcing/snapshot/policy.rb,
lib/synapse/serialization/message/metadata.rb,
lib/synapse/command/gateway/retry_scheduler.rb,
lib/synapse/configuration/container_builder.rb,
lib/synapse/event_sourcing/stream_decorator.rb,
lib/synapse/process_manager/correlation_set.rb,
lib/synapse/process_manager/mapping/process.rb,
lib/synapse/process_manager/process_factory.rb,
lib/synapse/process_manager/process_manager.rb,
lib/synapse/serialization/converter_factory.rb,
lib/synapse/serialization/revision_resolver.rb,
lib/synapse/serialization/serialized_object.rb,
lib/synapse/configuration/definition_builder.rb,
lib/synapse/event_sourcing/aggregate_factory.rb,
lib/synapse/event_sourcing/conflict_resolver.rb,
lib/synapse/serialization/converter/identity.rb,
lib/synapse/serialization/message/serializer.rb,
lib/synapse/serialization/serializer/marshal.rb,
lib/synapse/command/gateway/retrying_callback.rb,
lib/synapse/configuration/component/event_bus.rb,
lib/synapse/configuration/component/upcasting.rb,
lib/synapse/process_manager/resource_injector.rb,
lib/synapse/auditing/command_metadata_provider.rb,
lib/synapse/auditing/correlation_data_provider.rb,
lib/synapse/command/interceptors/serialization.rb,
lib/synapse/common/concurrency/identifier_lock.rb,
lib/synapse/configuration/component/repository.rb,
lib/synapse/process_manager/process_repository.rb,
lib/synapse/repository/optimistic_lock_manager.rb,
lib/synapse/serialization/serializer/attribute.rb,
lib/synapse/configuration/component/command_bus.rb,
lib/synapse/repository/pessimistic_lock_manager.rb,
lib/synapse/process_manager/correlation_resolver.rb,
lib/synapse/process_manager/repository/in_memory.rb,
lib/synapse/configuration/component/serialization.rb,
lib/synapse/event_sourcing/snapshot/unit_listener.rb,
lib/synapse/configuration/component/event_sourcing.rb,
lib/synapse/process_manager/simple_process_manager.rb,
lib/synapse/configuration/component/process_manager.rb,
lib/synapse/event_sourcing/snapshot/aggregate_taker.rb,
lib/synapse/process_manager/mapping/process_manager.rb,
lib/synapse/command/gateway/interval_retry_scheduler.rb,
lib/synapse/configuration/component/uow/unit_factory.rb,
lib/synapse/process_manager/pessimistic_lock_manager.rb,
lib/synapse/serialization/message/serialized_message.rb,
lib/synapse/serialization/message/serialization_aware.rb,
lib/synapse/configuration/component/shared/thread_pool.rb,
lib/synapse/configuration/component/command_bus/gateway.rb,
lib/synapse/process_manager/container_resource_injector.rb,
lib/synapse/serialization/message/serialized_object_cache.rb,
lib/synapse/configuration/component/serialization/serializer.rb,
lib/synapse/configuration/component/upcasting/upcaster_chain.rb,
lib/synapse/serialization/message/serialized_message_builder.rb,
lib/synapse/configuration/component/event_sourcing/repository.rb,
lib/synapse/serialization/message/serialization_aware_message.rb,
lib/synapse/configuration/component/event_bus/simple_event_bus.rb,
lib/synapse/configuration/component/repository/simple_repository.rb,
lib/synapse/configuration/component/command_bus/async_command_bus.rb,
lib/synapse/configuration/component/repository/locking_repository.rb,
lib/synapse/configuration/component/command_bus/simple_command_bus.rb,
lib/synapse/configuration/component/serialization/converter_factory.rb,
lib/synapse/configuration/component/event_sourcing/snapshot/aggregate_taker.rb,
lib/synapse/configuration/component/event_sourcing/snapshot/interval_policy.rb,
lib/synapse/configuration/component/process_manager/generic_process_factory.rb,
lib/synapse/configuration/component/process_manager/mapping_process_manager.rb,
lib/synapse/configuration/component/process_manager/container_resource_injector.rb

Defined Under Namespace

Modules: Auditing, Command, Configuration, Domain, EventBus, EventSourcing, EventStore, Mapping, ProcessManager, Rails, Repository, Serialization, UnitOfWork, Upcasting Classes: ConfigurationError, DuplicationError, DuplicationRecorder, GuidIdentifierFactory, IdentifierFactory, IdentifierLock, Message, MessageBuilder, NonTransientError, PublicLock, Railtie, SynapseError, TransientError

Constant Summary collapse

VERSION =
'0.5.6'

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.containerConfiguration::Container



4
5
6
# File 'lib/synapse/configuration/ext.rb', line 4

def container
  @container
end

.container_builderConfiguration::ContainerBuilder



7
8
9
# File 'lib/synapse/configuration/ext.rb', line 7

def container_builder
  @container_builder
end

Class Method Details

.build(&block) ⇒ undefined

Initializes the service container and the container builder

The given block is executed in the container of the container builder. Factory blocks are always deferred until the service is needed to build another service or is manually requested from the container.

This method can be called multiple times without losing the state of the container.

Examples:

Synapse.build do
  definition :account_projection do
    tag :event_listener, :projection
    use_factory do
      Bank::Projections::AccountProjection.new
    end
  end
end

Parameters:

  • block (Proc)

Returns:

  • (undefined)

See Also:



30
31
32
33
34
35
# File 'lib/synapse/configuration/ext.rb', line 30

def build(&block)
  self.container ||= Configuration::Container.new
  self.container_builder ||= Configuration::ContainerBuilder.new self.container

  self.container_builder.build_with(&block)
end

.build_with_defaults(&block) ⇒ undefined

Initializes the service container and the container builder and applies simple defaults for getting started with a single node setup

Examples:

Synapse.build_with_defaults do
  # Setup things like command handlers, event listeners and repositories
end

Parameters:

  • block (Proc)

Returns:

  • (undefined)

See Also:



48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# File 'lib/synapse/configuration/ext.rb', line 48

def build_with_defaults(&block)
  build do
    converter_factory
    serializer
    upcaster_chain

    unit_factory
    simple_command_bus
    gateway

    simple_event_bus
  end

  build &block
end