protected CoreProjectionCheckpointManager( ICoreProjection coreProjection, IPublisher publisher, Guid projectionCorrelationId, RequestResponseDispatcher<ClientMessage.ReadStreamEventsBackward, ClientMessage.ReadStreamEventsBackwardCompleted> readDispatcher, RequestResponseDispatcher<ClientMessage.WriteEvents, ClientMessage.WriteEventsCompleted> writeDispatcher, ProjectionConfig projectionConfig, string name, PositionTagger positionTagger, ProjectionNamesBuilder namingBuilder, bool useCheckpoints, bool emitStateUpdated, bool emitPartitionCheckpoints) { if (coreProjection == null) throw new ArgumentNullException("coreProjection"); if (publisher == null) throw new ArgumentNullException("publisher"); if (readDispatcher == null) throw new ArgumentNullException("readDispatcher"); if (writeDispatcher == null) throw new ArgumentNullException("writeDispatcher"); if (projectionConfig == null) throw new ArgumentNullException("projectionConfig"); if (name == null) throw new ArgumentNullException("name"); if (positionTagger == null) throw new ArgumentNullException("positionTagger"); if (namingBuilder == null) throw new ArgumentNullException("namingBuilder"); if (name == "") throw new ArgumentException("name"); if (emitPartitionCheckpoints && emitStateUpdated) throw new InvalidOperationException("EmitPartitionCheckpoints && EmitStateUpdated cannot be both set"); _lastProcessedEventPosition = new PositionTracker(positionTagger); _coreProjection = coreProjection; _publisher = publisher; _projectionCorrelationId = projectionCorrelationId; _readDispatcher = readDispatcher; _writeDispatcher = writeDispatcher; _projectionConfig = projectionConfig; _logger = LogManager.GetLoggerFor<CoreProjectionCheckpointManager>(); _name = name; _positionTagger = positionTagger; _namingBuilder = namingBuilder; _useCheckpoints = useCheckpoints; _emitStateUpdated = emitStateUpdated; _emitPartitionCheckpoints = emitPartitionCheckpoints; }
public ICoreProjectionCheckpointManager CreateCheckpointManager( ICoreProjection coreProjection, Guid projectionCorrelationId, IPublisher publisher, RequestResponseDispatcher <ClientMessage.ReadStreamEventsBackward, ClientMessage.ReadStreamEventsBackwardCompleted> requestResponseDispatcher, RequestResponseDispatcher <ClientMessage.WriteEvents, ClientMessage.WriteEventsCompleted> responseDispatcher, ProjectionConfig projectionConfig, string name, string stateUpdatesStreamId) { if (_allStreams && _useEventIndexes && _events != null && _events.Count > 1) { string projectionStateUpdatesStreamId = stateUpdatesStreamId; return(new MultiStreamCheckpointManager( coreProjection, publisher, projectionCorrelationId, requestResponseDispatcher, responseDispatcher, projectionConfig, name, PositionTagger, projectionStateUpdatesStreamId)); } else if (_streams != null && _streams.Count > 1) { string projectionStateUpdatesStreamId = stateUpdatesStreamId; return(new MultiStreamCheckpointManager( coreProjection, publisher, projectionCorrelationId, requestResponseDispatcher, responseDispatcher, projectionConfig, name, PositionTagger, projectionStateUpdatesStreamId)); } else { string projectionCheckpointStreamId = CoreProjection.ProjectionsStreamPrefix + name + CoreProjection.ProjectionCheckpointStreamSuffix; return(new DefaultCheckpointManager( coreProjection, publisher, projectionCorrelationId, requestResponseDispatcher, responseDispatcher, projectionConfig, projectionCheckpointStreamId, name, PositionTagger)); } }
protected CoreProjectionCheckpointManager( ICoreProjection coreProjection, IPublisher publisher, Guid projectionCorrelationId, RequestResponseDispatcher <ClientMessage.ReadStreamEventsBackward, ClientMessage.ReadStreamEventsBackwardCompleted> readDispatcher, RequestResponseDispatcher<ClientMessage.WriteEvents, ClientMessage.WriteEventsCompleted> writeDispatcher, ProjectionConfig projectionConfig, string name, PositionTagger positionTagger) { if (coreProjection == null) throw new ArgumentNullException("coreProjection"); if (publisher == null) throw new ArgumentNullException("publisher"); if (readDispatcher == null) throw new ArgumentNullException("readDispatcher"); if (writeDispatcher == null) throw new ArgumentNullException("writeDispatcher"); if (projectionConfig == null) throw new ArgumentNullException("projectionConfig"); if (name == null) throw new ArgumentNullException("name"); if (positionTagger == null) throw new ArgumentNullException("positionTagger"); if (name == "") throw new ArgumentException("name"); _lastProcessedEventPosition = new PositionTracker(positionTagger); _coreProjection = coreProjection; _publisher = publisher; _projectionCorrelationId = projectionCorrelationId; _readDispatcher = readDispatcher; _writeDispatcher = writeDispatcher; _projectionConfig = projectionConfig; _logger = LogManager.GetLoggerFor<CoreProjectionCheckpointManager>(); _name = name; _positionTagger = positionTagger; }
protected CoreProjectionCheckpointManager( ICoreProjection coreProjection, IPublisher publisher, Guid projectionCorrelationId, RequestResponseDispatcher <ClientMessage.ReadStreamEventsBackward, ClientMessage.ReadStreamEventsBackwardCompleted> readDispatcher, RequestResponseDispatcher <ClientMessage.WriteEvents, ClientMessage.WriteEventsCompleted> writeDispatcher, ProjectionConfig projectionConfig, string projectionCheckpointStreamId, string name, PositionTagger positionTagger) { if (coreProjection == null) { throw new ArgumentNullException("coreProjection"); } if (publisher == null) { throw new ArgumentNullException("publisher"); } if (readDispatcher == null) { throw new ArgumentNullException("readDispatcher"); } if (writeDispatcher == null) { throw new ArgumentNullException("writeDispatcher"); } if (projectionConfig == null) { throw new ArgumentNullException("projectionConfig"); } if (projectionCheckpointStreamId == null) { throw new ArgumentNullException("projectionCheckpointStreamId"); } if (projectionCheckpointStreamId == "") { throw new ArgumentException("projectionCheckpointStreamId"); } if (name == null) { throw new ArgumentNullException("name"); } if (positionTagger == null) { throw new ArgumentNullException("positionTagger"); } if (name == "") { throw new ArgumentException("name"); } _lastProcessedEventPosition = new PositionTracker(positionTagger); _coreProjection = coreProjection; _publisher = publisher; _projectionCorrelationId = projectionCorrelationId; _readDispatcher = readDispatcher; _writeDispatcher = writeDispatcher; _projectionConfig = projectionConfig; _logger = LogManager.GetLoggerFor <CoreProjectionCheckpointManager>(); _name = name; }
public Subscribe( Guid correlationId, ICoreProjection subscriber, CheckpointTag from, CheckpointStrategy checkpointStrategy, long checkpointUnhandledBytesThreshold) { _correlationId = correlationId; _subscriber = subscriber; _fromPosition = @from; _checkpointStrategy = checkpointStrategy; _checkpointUnhandledBytesThreshold = checkpointUnhandledBytesThreshold; }
public MultiStreamCheckpointManager( ICoreProjection coreProjection, IPublisher publisher, Guid projectionCorrelationId, RequestResponseDispatcher <ClientMessage.ReadStreamEventsBackward, ClientMessage.ReadStreamEventsBackwardCompleted> readDispatcher, RequestResponseDispatcher<ClientMessage.WriteEvents, ClientMessage.WriteEventsCompleted> writeDispatcher, ProjectionConfig projectionConfig, string name, PositionTagger positionTagger, string projectionStateUpdatesStreamId) : base(coreProjection, publisher, projectionCorrelationId, readDispatcher, writeDispatcher, projectionConfig, name, positionTagger) { _projectionStateUpdatesStreamId = projectionStateUpdatesStreamId; }
public MultiStreamCheckpointManager( ICoreProjection coreProjection, IPublisher publisher, Guid projectionCorrelationId, RequestResponseDispatcher <ClientMessage.ReadStreamEventsBackward, ClientMessage.ReadStreamEventsBackwardCompleted> readDispatcher, RequestResponseDispatcher <ClientMessage.WriteEvents, ClientMessage.WriteEventsCompleted> writeDispatcher, ProjectionConfig projectionConfig, string name, PositionTagger positionTagger, string projectionStateUpdatesStreamId) : base( coreProjection, publisher, projectionCorrelationId, readDispatcher, writeDispatcher, projectionConfig, name, positionTagger) { _projectionStateUpdatesStreamId = projectionStateUpdatesStreamId; }
public Subscribe( Guid correlationId, Guid subscriptionId, ICoreProjection subscriber, CheckpointTag from, CheckpointStrategy checkpointStrategy, long checkpointUnhandledBytesThreshold, bool stopOnEof = false) { _correlationId = correlationId; _subscriptionId = subscriptionId; _subscriber = subscriber; _fromPosition = @from; _checkpointStrategy = checkpointStrategy; _checkpointUnhandledBytesThreshold = checkpointUnhandledBytesThreshold; _stopOnEof = stopOnEof; }
public DefaultCheckpointManager( ICoreProjection coreProjection, IPublisher publisher, Guid projectionCorrelationId, RequestResponseDispatcher <ClientMessage.ReadStreamEventsBackward, ClientMessage.ReadStreamEventsBackwardCompleted> readDispatcher, RequestResponseDispatcher<ClientMessage.WriteEvents, ClientMessage.WriteEventsCompleted> writeDispatcher, ProjectionConfig projectionConfig, string projectionCheckpointStreamId, string name, PositionTagger positionTagger) : base(coreProjection, publisher, projectionCorrelationId, readDispatcher, writeDispatcher, projectionConfig, name, positionTagger) { if (projectionCheckpointStreamId == null) throw new ArgumentNullException("projectionCheckpointStreamId"); if (projectionCheckpointStreamId == "") throw new ArgumentException("projectionCheckpointStreamId"); _projectionCheckpointStreamId = projectionCheckpointStreamId; }
public DefaultCheckpointManager( ICoreProjection coreProjection, IPublisher publisher, Guid projectionCorrelationId, RequestResponseDispatcher <ClientMessage.ReadStreamEventsBackward, ClientMessage.ReadStreamEventsBackwardCompleted> readDispatcher, RequestResponseDispatcher<ClientMessage.WriteEvents, ClientMessage.WriteEventsCompleted> writeDispatcher, ProjectionConfig projectionConfig, string name, PositionTagger positionTagger, ProjectionNamesBuilder namingBuilder, bool useCheckpoints, bool emitStateUpdated, bool emitPartitionCheckpoints = false) : base( coreProjection, publisher, projectionCorrelationId, readDispatcher, writeDispatcher, projectionConfig, name, positionTagger, namingBuilder, useCheckpoints, emitStateUpdated, emitPartitionCheckpoints) { _projectionCheckpointStreamId = namingBuilder.MakeCheckpointStreamName(); }
public CoreProjectionDefaultCheckpointManager CreateCheckpointManager( ICoreProjection coreProjection, Guid projectionCorrelationId, IPublisher publisher, RequestResponseDispatcher <ClientMessage.ReadStreamEventsBackward, ClientMessage.ReadStreamEventsBackwardCompleted> requestResponseDispatcher, RequestResponseDispatcher <ClientMessage.WriteEvents, ClientMessage.WriteEventsCompleted> responseDispatcher, ProjectionConfig projectionConfig, string name) { string projectionCheckpointStreamId = CoreProjection.ProjectionsStreamPrefix + name + CoreProjection.ProjectionCheckpointStreamSuffix; return(new CoreProjectionDefaultCheckpointManager( coreProjection, publisher, projectionCorrelationId, requestResponseDispatcher, responseDispatcher, projectionConfig, projectionCheckpointStreamId, name, PositionTagger)); }
public DefaultCheckpointManager( ICoreProjection coreProjection, IPublisher publisher, Guid projectionCorrelationId, RequestResponseDispatcher <ClientMessage.ReadStreamEventsBackward, ClientMessage.ReadStreamEventsBackwardCompleted> readDispatcher, RequestResponseDispatcher <ClientMessage.WriteEvents, ClientMessage.WriteEventsCompleted> writeDispatcher, ProjectionConfig projectionConfig, string projectionCheckpointStreamId, string name, PositionTagger positionTagger) : base( coreProjection, publisher, projectionCorrelationId, readDispatcher, writeDispatcher, projectionConfig, name, positionTagger) { if (projectionCheckpointStreamId == null) { throw new ArgumentNullException("projectionCheckpointStreamId"); } if (projectionCheckpointStreamId == "") { throw new ArgumentException("projectionCheckpointStreamId"); } _projectionCheckpointStreamId = projectionCheckpointStreamId; }
public ICoreProjectionCheckpointManager CreateCheckpointManager( ICoreProjection coreProjection, Guid projectionCorrelationId, IPublisher publisher, RequestResponseDispatcher <ClientMessage.ReadStreamEventsBackward, ClientMessage.ReadStreamEventsBackwardCompleted> requestResponseDispatcher, RequestResponseDispatcher<ClientMessage.WriteEvents, ClientMessage.WriteEventsCompleted> responseDispatcher, ProjectionConfig projectionConfig, string name, string stateUpdatesStreamId) { if (_allStreams && _useEventIndexes && _events != null && _events.Count > 1) { string projectionStateUpdatesStreamId = stateUpdatesStreamId; return new MultiStreamCheckpointManager( coreProjection, publisher, projectionCorrelationId, requestResponseDispatcher, responseDispatcher, projectionConfig, name, PositionTagger, projectionStateUpdatesStreamId); } else if (_streams != null && _streams.Count > 1) { string projectionStateUpdatesStreamId = stateUpdatesStreamId; return new MultiStreamCheckpointManager( coreProjection, publisher, projectionCorrelationId, requestResponseDispatcher, responseDispatcher, projectionConfig, name, PositionTagger, projectionStateUpdatesStreamId); } else { string projectionCheckpointStreamId = CoreProjection.ProjectionsStreamPrefix + name + CoreProjection.ProjectionCheckpointStreamSuffix; return new DefaultCheckpointManager( coreProjection, publisher, projectionCorrelationId, requestResponseDispatcher, responseDispatcher, projectionConfig, projectionCheckpointStreamId, name, PositionTagger); } }
public ICoreProjectionCheckpointManager CreateCheckpointManager( ICoreProjection coreProjection, Guid projectionCorrelationId, IPublisher publisher, RequestResponseDispatcher <ClientMessage.ReadStreamEventsBackward, ClientMessage.ReadStreamEventsBackwardCompleted> readDispatcher, RequestResponseDispatcher<ClientMessage.WriteEvents, ClientMessage.WriteEventsCompleted> writeDispatcher, ProjectionConfig projectionConfig, string name, ProjectionNamesBuilder namingBuilder) { var emitPartitionCheckpoints = UseCheckpoints && !EmitStateUpdated && (_byCustomPartitions || _byStream); if (_allStreams && _useEventIndexes && _events != null && _events.Count > 1) { return new MultiStreamMultiOutputCheckpointManager( coreProjection, publisher, projectionCorrelationId, readDispatcher, writeDispatcher, projectionConfig, name, PositionTagger, namingBuilder, UseCheckpoints, EmitStateUpdated, emitPartitionCheckpoints); } else if (_streams != null && _streams.Count > 1) { return new MultiStreamMultiOutputCheckpointManager( coreProjection, publisher, projectionCorrelationId, readDispatcher, writeDispatcher, projectionConfig, name, PositionTagger, namingBuilder, UseCheckpoints, EmitStateUpdated, emitPartitionCheckpoints); } else { return new DefaultCheckpointManager( coreProjection, publisher, projectionCorrelationId, readDispatcher, writeDispatcher, projectionConfig, name, PositionTagger, namingBuilder, UseCheckpoints, EmitStateUpdated, emitPartitionCheckpoints); } }
public IProjectionSubscription CreateProjectionSubscription( CheckpointTag fromCheckpointTag, Guid projectionCorrelationId, Guid subscriptionId, ICoreProjection projection, long checkpointUnhandledBytesThreshold, bool stopOnEof) { if (_reorderEvents) return new EventReorderingProjectionSubscription( projectionCorrelationId, subscriptionId, fromCheckpointTag, projection, projection, projection, projection, this, checkpointUnhandledBytesThreshold, _processingLag, stopOnEof); else return new ProjectionSubscription( projectionCorrelationId, subscriptionId, fromCheckpointTag, projection, projection, projection, projection, this, checkpointUnhandledBytesThreshold, stopOnEof); }
public ICoreProjectionCheckpointManager CreateCheckpointManager( ICoreProjection coreProjection, Guid projectionCorrelationId, IPublisher publisher, RequestResponseDispatcher <ClientMessage.ReadStreamEventsBackward, ClientMessage.ReadStreamEventsBackwardCompleted> readDispatcher, RequestResponseDispatcher<ClientMessage.WriteEvents, ClientMessage.WriteEventsCompleted> writeDispatcher, ProjectionConfig projectionConfig, string name, ProjectionNamesBuilder namingBuilder) { var emitAny = projectionConfig.EmitEventEnabled; var emitPartitionCheckpoints = UseCheckpoints && !EmitStateUpdated && (_byCustomPartitions || _byStream); //NOTE: not emitting one-time/transient projections are always handled by default checkpoint manager // as they don't depend on stable event order if (emitAny && _allStreams && _useEventIndexes && _events != null && _events.Count > 1) { return new MultiStreamMultiOutputCheckpointManager( coreProjection, publisher, projectionCorrelationId, readDispatcher, writeDispatcher, projectionConfig, name, PositionTagger, namingBuilder, UseCheckpoints, EmitStateUpdated, emitPartitionCheckpoints); } else if (emitAny && _streams != null && _streams.Count > 1) { return new MultiStreamMultiOutputCheckpointManager( coreProjection, publisher, projectionCorrelationId, readDispatcher, writeDispatcher, projectionConfig, name, PositionTagger, namingBuilder, UseCheckpoints, EmitStateUpdated, emitPartitionCheckpoints); } else { return new DefaultCheckpointManager( coreProjection, publisher, projectionCorrelationId, readDispatcher, writeDispatcher, projectionConfig, name, PositionTagger, namingBuilder, UseCheckpoints, EmitStateUpdated, emitPartitionCheckpoints); } }
public Subscribe( Guid correlationId, Guid subscriptionId, ICoreProjection subscriber, CheckpointTag from, CheckpointStrategy checkpointStrategy, long checkpointUnhandledBytesThreshold, bool stopOnEof = false) { if (subscriber == null) throw new ArgumentNullException("subscriber"); if (@from == null) throw new ArgumentNullException("from"); if (checkpointStrategy == null) throw new ArgumentNullException("checkpointStrategy"); _correlationId = correlationId; _subscriptionId = subscriptionId; _subscriber = subscriber; _fromPosition = @from; _checkpointStrategy = checkpointStrategy; _checkpointUnhandledBytesThreshold = checkpointUnhandledBytesThreshold; _stopOnEof = stopOnEof; }
public CoreProjectionDefaultCheckpointManager CreateCheckpointManager( ICoreProjection coreProjection, Guid projectionCorrelationId, IPublisher publisher, RequestResponseDispatcher <ClientMessage.ReadStreamEventsBackward, ClientMessage.ReadStreamEventsBackwardCompleted> requestResponseDispatcher, RequestResponseDispatcher<ClientMessage.WriteEvents, ClientMessage.WriteEventsCompleted> responseDispatcher, ProjectionConfig projectionConfig, string name) { string projectionCheckpointStreamId = CoreProjection.ProjectionsStreamPrefix + name + CoreProjection.ProjectionCheckpointStreamSuffix; return new CoreProjectionDefaultCheckpointManager( coreProjection, publisher, projectionCorrelationId, requestResponseDispatcher, responseDispatcher, projectionConfig, projectionCheckpointStreamId, name, PositionTagger); }