Search in sources :

Example 1 with ActorScheduler

use of io.camunda.zeebe.util.sched.ActorScheduler in project zeebe by zeebe-io.

the class TestStreams method buildStreamProcessor.

private StreamProcessor buildStreamProcessor(final SynchronousLogStream stream, final ZeebeDbFactory zeebeDbFactory, final TypedRecordProcessorFactory factory, final boolean awaitOpening) {
    final var storage = createRuntimeFolder(stream);
    final var snapshot = storage.getParent().resolve(SNAPSHOT_FOLDER);
    final var recoveredLatch = new CountDownLatch(1);
    final var recoveredAwaiter = new StreamProcessorLifecycleAware() {

        @Override
        public void onRecovered(final ReadonlyProcessingContext context) {
            recoveredLatch.countDown();
        }
    };
    final TypedRecordProcessorFactory wrappedFactory = (ctx) -> factory.createProcessors(ctx).withListener(recoveredAwaiter);
    final ZeebeDb<?> zeebeDb;
    if (snapshotWasTaken) {
        zeebeDb = zeebeDbFactory.createDb(snapshot.toFile());
    } else {
        zeebeDb = zeebeDbFactory.createDb(storage.toFile());
    }
    final String logName = stream.getLogName();
    final StreamProcessor streamProcessor = StreamProcessor.builder().logStream(stream.getAsyncLogStream()).zeebeDb(zeebeDb).actorSchedulingService(actorScheduler).commandResponseWriter(mockCommandResponseWriter).listener(mockStreamProcessorListener).streamProcessorFactory(wrappedFactory).eventApplierFactory(eventApplierFactory).streamProcessorMode(streamProcessorMode).build();
    final var openFuture = streamProcessor.openAsync(false);
    if (awaitOpening) {
        // and recovery
        try {
            recoveredLatch.await(15, TimeUnit.SECONDS);
        } catch (final InterruptedException e) {
            Thread.interrupted();
        }
    }
    openFuture.join(15, TimeUnit.SECONDS);
    final LogContext context = logContextMap.get(logName);
    final ProcessorContext processorContext = ProcessorContext.createStreamContext(context, streamProcessor, zeebeDb, storage, snapshot);
    streamContextMap.put(logName, processorContext);
    closeables.manage(processorContext);
    return streamProcessor;
}
Also used : StreamProcessorListener(io.camunda.zeebe.engine.processing.streamprocessor.StreamProcessorListener) UnpackedObject(io.camunda.zeebe.msgpack.UnpackedObject) Protocol(io.camunda.zeebe.protocol.Protocol) RecordType(io.camunda.zeebe.protocol.record.RecordType) AutoCloseableRule(io.camunda.zeebe.test.util.AutoCloseableRule) CommandResponseWriter(io.camunda.zeebe.engine.processing.streamprocessor.writers.CommandResponseWriter) LogStreamRecordWriter(io.camunda.zeebe.logstreams.log.LogStreamRecordWriter) LogStreamReader(io.camunda.zeebe.logstreams.log.LogStreamReader) RecordMetadata(io.camunda.zeebe.protocol.impl.record.RecordMetadata) Map(java.util.Map) Path(java.nio.file.Path) StreamProcessorMode(io.camunda.zeebe.engine.processing.streamprocessor.StreamProcessorMode) TypedEventRegistry(io.camunda.zeebe.engine.processing.streamprocessor.TypedEventRegistry) LogStorage(io.camunda.zeebe.logstreams.storage.LogStorage) MutableZeebeState(io.camunda.zeebe.engine.state.mutable.MutableZeebeState) EventApplier(io.camunda.zeebe.engine.state.EventApplier) Loggers(io.camunda.zeebe.util.Loggers) TypedRecordProcessorFactory(io.camunda.zeebe.engine.processing.streamprocessor.TypedRecordProcessorFactory) UncheckedIOException(java.io.UncheckedIOException) CountDownLatch(java.util.concurrent.CountDownLatch) TestUtil.doRepeatedly(io.camunda.zeebe.test.util.TestUtil.doRepeatedly) Stream(java.util.stream.Stream) CopiedRecord(io.camunda.zeebe.protocol.impl.record.CopiedRecord) EventAppliers(io.camunda.zeebe.engine.state.appliers.EventAppliers) Optional(java.util.Optional) LOG(io.camunda.zeebe.logstreams.impl.log.LogStorageAppender.LOG) Mockito.mock(org.mockito.Mockito.mock) ArgumentMatchers.any(org.mockito.ArgumentMatchers.any) ArgumentMatchers.anyLong(org.mockito.ArgumentMatchers.anyLong) LogStreamBatchWriter(io.camunda.zeebe.logstreams.log.LogStreamBatchWriter) ValueType(io.camunda.zeebe.protocol.record.ValueType) HashMap(java.util.HashMap) Function(java.util.function.Function) ZeebeDb(io.camunda.zeebe.db.ZeebeDb) SynchronousLogStream(io.camunda.zeebe.logstreams.util.SynchronousLogStream) StreamSupport(java.util.stream.StreamSupport) NoSuchElementException(java.util.NoSuchElementException) ArgumentMatchers.anyInt(org.mockito.ArgumentMatchers.anyInt) LoggedEvent(io.camunda.zeebe.logstreams.log.LoggedEvent) FileUtil(io.camunda.zeebe.util.FileUtil) Intent(io.camunda.zeebe.protocol.record.intent.Intent) StreamProcessor(io.camunda.zeebe.engine.processing.streamprocessor.StreamProcessor) Files(java.nio.file.Files) SyncLogStream(io.camunda.zeebe.logstreams.util.SyncLogStream) IOException(java.io.IOException) Mockito.when(org.mockito.Mockito.when) ZeebeDbFactory(io.camunda.zeebe.db.ZeebeDbFactory) FileAlreadyExistsException(java.nio.file.FileAlreadyExistsException) TimeUnit(java.util.concurrent.TimeUnit) Consumer(java.util.function.Consumer) ReadonlyProcessingContext(io.camunda.zeebe.engine.processing.streamprocessor.ReadonlyProcessingContext) StreamProcessorLifecycleAware(io.camunda.zeebe.engine.processing.streamprocessor.StreamProcessorLifecycleAware) TemporaryFolder(org.junit.rules.TemporaryFolder) ActorScheduler(io.camunda.zeebe.util.sched.ActorScheduler) StreamProcessorLifecycleAware(io.camunda.zeebe.engine.processing.streamprocessor.StreamProcessorLifecycleAware) StreamProcessor(io.camunda.zeebe.engine.processing.streamprocessor.StreamProcessor) ReadonlyProcessingContext(io.camunda.zeebe.engine.processing.streamprocessor.ReadonlyProcessingContext) CountDownLatch(java.util.concurrent.CountDownLatch) TypedRecordProcessorFactory(io.camunda.zeebe.engine.processing.streamprocessor.TypedRecordProcessorFactory)

Example 2 with ActorScheduler

use of io.camunda.zeebe.util.sched.ActorScheduler in project zeebe-process-test by camunda.

the class EngineFactory method create.

public static ZeebeTestEngine create(final int port) {
    final int partitionId = 1;
    final int partitionCount = 1;
    final ControlledActorClock clock = createActorClock();
    final ActorScheduler scheduler = createAndStartActorScheduler(clock);
    final InMemoryLogStorage logStorage = new InMemoryLogStorage();
    final LogStream logStream = createLogStream(logStorage, scheduler, partitionId);
    final SubscriptionCommandSenderFactory subscriptionCommandSenderFactory = new SubscriptionCommandSenderFactory(logStream.newLogStreamRecordWriter().join(), partitionId);
    final GrpcToLogStreamGateway gateway = new GrpcToLogStreamGateway(logStream.newLogStreamRecordWriter().join(), partitionId, partitionCount, port);
    final Server grpcServer = ServerBuilder.forPort(port).addService(gateway).build();
    final GrpcResponseWriter grpcResponseWriter = new GrpcResponseWriter(gateway);
    final ZeebeDb<ZbColumnFamilies> zeebeDb = createDatabase();
    final EngineStateMonitor engineStateMonitor = new EngineStateMonitor(logStorage, logStream.newLogStreamReader().join());
    final StreamProcessor streamProcessor = createStreamProcessor(logStream, zeebeDb, scheduler, grpcResponseWriter, engineStateMonitor, partitionCount, subscriptionCommandSenderFactory);
    final LogStreamReader reader = logStream.newLogStreamReader().join();
    final RecordStreamSourceImpl recordStream = new RecordStreamSourceImpl(reader, partitionId);
    return new InMemoryEngine(grpcServer, streamProcessor, gateway, zeebeDb, logStream, scheduler, recordStream, clock, engineStateMonitor);
}
Also used : StreamProcessor(io.camunda.zeebe.engine.processing.streamprocessor.StreamProcessor) ControlledActorClock(io.camunda.zeebe.util.sched.clock.ControlledActorClock) Server(io.grpc.Server) LogStream(io.camunda.zeebe.logstreams.log.LogStream) ZbColumnFamilies(io.camunda.zeebe.engine.state.ZbColumnFamilies) ActorScheduler(io.camunda.zeebe.util.sched.ActorScheduler) LogStreamReader(io.camunda.zeebe.logstreams.log.LogStreamReader)

Example 3 with ActorScheduler

use of io.camunda.zeebe.util.sched.ActorScheduler in project zeebe by camunda.

the class ClusteringRule method createGateway.

private Gateway createGateway() {
    final String contactPoint = NetUtil.toSocketAddressString(getBrokerCfg(0).getNetwork().getInternalApi().getAddress());
    final GatewayCfg gatewayCfg = new GatewayCfg();
    gatewayCfg.getCluster().setContactPoint(contactPoint).setClusterName(clusterName);
    gatewayCfg.getNetwork().setPort(SocketUtil.getNextAddress().getPort());
    gatewayCfg.getCluster().setPort(SocketUtil.getNextAddress().getPort());
    // temporarily increase request time out, but we should make this configurable per test
    gatewayCfg.getCluster().setRequestTimeout(Duration.ofSeconds(45));
    gatewayCfg.init();
    gatewayConfigurator.accept(gatewayCfg);
    final ClusterCfg clusterCfg = gatewayCfg.getCluster();
    // copied from StandaloneGateway
    final AtomixCluster atomixCluster = new AtomixClusterBuilder(new ClusterConfig()).withMemberId(clusterCfg.getMemberId()).withAddress(Address.from(clusterCfg.getHost(), clusterCfg.getPort())).withClusterId(clusterCfg.getClusterName()).withMembershipProvider(BootstrapDiscoveryProvider.builder().withNodes(Address.from(clusterCfg.getContactPoint())).build()).withMembershipProtocol(SwimMembershipProtocol.builder().withSyncInterval(Duration.ofSeconds(1)).build()).withMessageCompression(gatewayCfg.getCluster().getMessageCompression()).build();
    atomixCluster.start().join();
    final ActorScheduler actorScheduler = ActorScheduler.newActorScheduler().setCpuBoundActorThreadCount(1).build();
    actorScheduler.start();
    final Gateway gateway = new Gateway(gatewayCfg, atomixCluster.getMessagingService(), atomixCluster.getMembershipService(), atomixCluster.getEventService(), actorScheduler);
    closeables.manage(gateway::stop);
    closeables.manage(atomixCluster::stop);
    closeables.manage(actorScheduler::stop);
    return gateway;
}
Also used : ActorScheduler(io.camunda.zeebe.util.sched.ActorScheduler) AtomixClusterBuilder(io.atomix.cluster.AtomixClusterBuilder) Gateway(io.camunda.zeebe.gateway.Gateway) GatewayCfg(io.camunda.zeebe.gateway.impl.configuration.GatewayCfg) ClusterCfg(io.camunda.zeebe.gateway.impl.configuration.ClusterCfg) AtomixCluster(io.atomix.cluster.AtomixCluster) ClusterConfig(io.atomix.cluster.ClusterConfig)

Example 4 with ActorScheduler

use of io.camunda.zeebe.util.sched.ActorScheduler in project zeebe by camunda.

the class TestStreams method buildStreamProcessor.

private StreamProcessor buildStreamProcessor(final SynchronousLogStream stream, final ZeebeDbFactory zeebeDbFactory, final TypedRecordProcessorFactory factory, final boolean awaitOpening) {
    final var storage = createRuntimeFolder(stream);
    final var snapshot = storage.getParent().resolve(SNAPSHOT_FOLDER);
    final var recoveredLatch = new CountDownLatch(1);
    final var recoveredAwaiter = new StreamProcessorLifecycleAware() {

        @Override
        public void onRecovered(final ReadonlyProcessingContext context) {
            recoveredLatch.countDown();
        }
    };
    final TypedRecordProcessorFactory wrappedFactory = (ctx) -> factory.createProcessors(ctx).withListener(recoveredAwaiter);
    final ZeebeDb<?> zeebeDb;
    if (snapshotWasTaken) {
        zeebeDb = zeebeDbFactory.createDb(snapshot.toFile());
    } else {
        zeebeDb = zeebeDbFactory.createDb(storage.toFile());
    }
    final String logName = stream.getLogName();
    final StreamProcessor streamProcessor = StreamProcessor.builder().logStream(stream.getAsyncLogStream()).zeebeDb(zeebeDb).actorSchedulingService(actorScheduler).commandResponseWriter(mockCommandResponseWriter).listener(mockStreamProcessorListener).streamProcessorFactory(wrappedFactory).eventApplierFactory(eventApplierFactory).streamProcessorMode(streamProcessorMode).build();
    final var openFuture = streamProcessor.openAsync(false);
    if (awaitOpening) {
        // and recovery
        try {
            recoveredLatch.await(15, TimeUnit.SECONDS);
        } catch (final InterruptedException e) {
            Thread.interrupted();
        }
    }
    openFuture.join(15, TimeUnit.SECONDS);
    final LogContext context = logContextMap.get(logName);
    final ProcessorContext processorContext = ProcessorContext.createStreamContext(context, streamProcessor, zeebeDb, storage, snapshot);
    streamContextMap.put(logName, processorContext);
    closeables.manage(processorContext);
    return streamProcessor;
}
Also used : StreamProcessorListener(io.camunda.zeebe.engine.processing.streamprocessor.StreamProcessorListener) UnpackedObject(io.camunda.zeebe.msgpack.UnpackedObject) Protocol(io.camunda.zeebe.protocol.Protocol) RecordType(io.camunda.zeebe.protocol.record.RecordType) AutoCloseableRule(io.camunda.zeebe.test.util.AutoCloseableRule) CommandResponseWriter(io.camunda.zeebe.engine.processing.streamprocessor.writers.CommandResponseWriter) LogStreamRecordWriter(io.camunda.zeebe.logstreams.log.LogStreamRecordWriter) LogStreamReader(io.camunda.zeebe.logstreams.log.LogStreamReader) RecordMetadata(io.camunda.zeebe.protocol.impl.record.RecordMetadata) Map(java.util.Map) Path(java.nio.file.Path) StreamProcessorMode(io.camunda.zeebe.engine.processing.streamprocessor.StreamProcessorMode) TypedEventRegistry(io.camunda.zeebe.engine.processing.streamprocessor.TypedEventRegistry) LogStorage(io.camunda.zeebe.logstreams.storage.LogStorage) MutableZeebeState(io.camunda.zeebe.engine.state.mutable.MutableZeebeState) EventApplier(io.camunda.zeebe.engine.state.EventApplier) Loggers(io.camunda.zeebe.util.Loggers) TypedRecordProcessorFactory(io.camunda.zeebe.engine.processing.streamprocessor.TypedRecordProcessorFactory) UncheckedIOException(java.io.UncheckedIOException) CountDownLatch(java.util.concurrent.CountDownLatch) TestUtil.doRepeatedly(io.camunda.zeebe.test.util.TestUtil.doRepeatedly) Stream(java.util.stream.Stream) CopiedRecord(io.camunda.zeebe.protocol.impl.record.CopiedRecord) EventAppliers(io.camunda.zeebe.engine.state.appliers.EventAppliers) Optional(java.util.Optional) LOG(io.camunda.zeebe.logstreams.impl.log.LogStorageAppender.LOG) Mockito.mock(org.mockito.Mockito.mock) ArgumentMatchers.any(org.mockito.ArgumentMatchers.any) ArgumentMatchers.anyLong(org.mockito.ArgumentMatchers.anyLong) LogStreamBatchWriter(io.camunda.zeebe.logstreams.log.LogStreamBatchWriter) ValueType(io.camunda.zeebe.protocol.record.ValueType) HashMap(java.util.HashMap) Function(java.util.function.Function) ZeebeDb(io.camunda.zeebe.db.ZeebeDb) SynchronousLogStream(io.camunda.zeebe.logstreams.util.SynchronousLogStream) StreamSupport(java.util.stream.StreamSupport) NoSuchElementException(java.util.NoSuchElementException) ArgumentMatchers.anyInt(org.mockito.ArgumentMatchers.anyInt) LoggedEvent(io.camunda.zeebe.logstreams.log.LoggedEvent) FileUtil(io.camunda.zeebe.util.FileUtil) Intent(io.camunda.zeebe.protocol.record.intent.Intent) StreamProcessor(io.camunda.zeebe.engine.processing.streamprocessor.StreamProcessor) Files(java.nio.file.Files) SyncLogStream(io.camunda.zeebe.logstreams.util.SyncLogStream) IOException(java.io.IOException) Mockito.when(org.mockito.Mockito.when) ZeebeDbFactory(io.camunda.zeebe.db.ZeebeDbFactory) FileAlreadyExistsException(java.nio.file.FileAlreadyExistsException) TimeUnit(java.util.concurrent.TimeUnit) Consumer(java.util.function.Consumer) ReadonlyProcessingContext(io.camunda.zeebe.engine.processing.streamprocessor.ReadonlyProcessingContext) StreamProcessorLifecycleAware(io.camunda.zeebe.engine.processing.streamprocessor.StreamProcessorLifecycleAware) TemporaryFolder(org.junit.rules.TemporaryFolder) ActorScheduler(io.camunda.zeebe.util.sched.ActorScheduler) StreamProcessorLifecycleAware(io.camunda.zeebe.engine.processing.streamprocessor.StreamProcessorLifecycleAware) StreamProcessor(io.camunda.zeebe.engine.processing.streamprocessor.StreamProcessor) ReadonlyProcessingContext(io.camunda.zeebe.engine.processing.streamprocessor.ReadonlyProcessingContext) CountDownLatch(java.util.concurrent.CountDownLatch) TypedRecordProcessorFactory(io.camunda.zeebe.engine.processing.streamprocessor.TypedRecordProcessorFactory)

Example 5 with ActorScheduler

use of io.camunda.zeebe.util.sched.ActorScheduler in project zeebe by camunda-cloud.

the class TestStreams method buildStreamProcessor.

private StreamProcessor buildStreamProcessor(final SynchronousLogStream stream, final ZeebeDbFactory zeebeDbFactory, final TypedRecordProcessorFactory factory, final boolean awaitOpening) {
    final var storage = createRuntimeFolder(stream);
    final var snapshot = storage.getParent().resolve(SNAPSHOT_FOLDER);
    final var recoveredLatch = new CountDownLatch(1);
    final var recoveredAwaiter = new StreamProcessorLifecycleAware() {

        @Override
        public void onRecovered(final ReadonlyProcessingContext context) {
            recoveredLatch.countDown();
        }
    };
    final TypedRecordProcessorFactory wrappedFactory = (ctx) -> factory.createProcessors(ctx).withListener(recoveredAwaiter);
    final ZeebeDb<?> zeebeDb;
    if (snapshotWasTaken) {
        zeebeDb = zeebeDbFactory.createDb(snapshot.toFile());
    } else {
        zeebeDb = zeebeDbFactory.createDb(storage.toFile());
    }
    final String logName = stream.getLogName();
    final StreamProcessor streamProcessor = StreamProcessor.builder().logStream(stream.getAsyncLogStream()).zeebeDb(zeebeDb).actorSchedulingService(actorScheduler).commandResponseWriter(mockCommandResponseWriter).listener(mockStreamProcessorListener).streamProcessorFactory(wrappedFactory).eventApplierFactory(eventApplierFactory).streamProcessorMode(streamProcessorMode).build();
    final var openFuture = streamProcessor.openAsync(false);
    if (awaitOpening) {
        // and recovery
        try {
            recoveredLatch.await(15, TimeUnit.SECONDS);
        } catch (final InterruptedException e) {
            Thread.interrupted();
        }
    }
    openFuture.join(15, TimeUnit.SECONDS);
    final LogContext context = logContextMap.get(logName);
    final ProcessorContext processorContext = ProcessorContext.createStreamContext(context, streamProcessor, zeebeDb, storage, snapshot);
    streamContextMap.put(logName, processorContext);
    closeables.manage(processorContext);
    return streamProcessor;
}
Also used : StreamProcessorListener(io.camunda.zeebe.engine.processing.streamprocessor.StreamProcessorListener) UnpackedObject(io.camunda.zeebe.msgpack.UnpackedObject) Protocol(io.camunda.zeebe.protocol.Protocol) RecordType(io.camunda.zeebe.protocol.record.RecordType) AutoCloseableRule(io.camunda.zeebe.test.util.AutoCloseableRule) CommandResponseWriter(io.camunda.zeebe.engine.processing.streamprocessor.writers.CommandResponseWriter) LogStreamRecordWriter(io.camunda.zeebe.logstreams.log.LogStreamRecordWriter) LogStreamReader(io.camunda.zeebe.logstreams.log.LogStreamReader) RecordMetadata(io.camunda.zeebe.protocol.impl.record.RecordMetadata) Map(java.util.Map) Path(java.nio.file.Path) StreamProcessorMode(io.camunda.zeebe.engine.processing.streamprocessor.StreamProcessorMode) TypedEventRegistry(io.camunda.zeebe.engine.processing.streamprocessor.TypedEventRegistry) LogStorage(io.camunda.zeebe.logstreams.storage.LogStorage) MutableZeebeState(io.camunda.zeebe.engine.state.mutable.MutableZeebeState) EventApplier(io.camunda.zeebe.engine.state.EventApplier) Loggers(io.camunda.zeebe.util.Loggers) TypedRecordProcessorFactory(io.camunda.zeebe.engine.processing.streamprocessor.TypedRecordProcessorFactory) UncheckedIOException(java.io.UncheckedIOException) CountDownLatch(java.util.concurrent.CountDownLatch) TestUtil.doRepeatedly(io.camunda.zeebe.test.util.TestUtil.doRepeatedly) Stream(java.util.stream.Stream) CopiedRecord(io.camunda.zeebe.protocol.impl.record.CopiedRecord) EventAppliers(io.camunda.zeebe.engine.state.appliers.EventAppliers) Optional(java.util.Optional) LOG(io.camunda.zeebe.logstreams.impl.log.LogStorageAppender.LOG) Mockito.mock(org.mockito.Mockito.mock) ArgumentMatchers.any(org.mockito.ArgumentMatchers.any) ArgumentMatchers.anyLong(org.mockito.ArgumentMatchers.anyLong) LogStreamBatchWriter(io.camunda.zeebe.logstreams.log.LogStreamBatchWriter) ValueType(io.camunda.zeebe.protocol.record.ValueType) HashMap(java.util.HashMap) Function(java.util.function.Function) ZeebeDb(io.camunda.zeebe.db.ZeebeDb) SynchronousLogStream(io.camunda.zeebe.logstreams.util.SynchronousLogStream) StreamSupport(java.util.stream.StreamSupport) NoSuchElementException(java.util.NoSuchElementException) ArgumentMatchers.anyInt(org.mockito.ArgumentMatchers.anyInt) LoggedEvent(io.camunda.zeebe.logstreams.log.LoggedEvent) FileUtil(io.camunda.zeebe.util.FileUtil) Intent(io.camunda.zeebe.protocol.record.intent.Intent) StreamProcessor(io.camunda.zeebe.engine.processing.streamprocessor.StreamProcessor) Files(java.nio.file.Files) SyncLogStream(io.camunda.zeebe.logstreams.util.SyncLogStream) IOException(java.io.IOException) Mockito.when(org.mockito.Mockito.when) ZeebeDbFactory(io.camunda.zeebe.db.ZeebeDbFactory) FileAlreadyExistsException(java.nio.file.FileAlreadyExistsException) TimeUnit(java.util.concurrent.TimeUnit) Consumer(java.util.function.Consumer) ReadonlyProcessingContext(io.camunda.zeebe.engine.processing.streamprocessor.ReadonlyProcessingContext) StreamProcessorLifecycleAware(io.camunda.zeebe.engine.processing.streamprocessor.StreamProcessorLifecycleAware) TemporaryFolder(org.junit.rules.TemporaryFolder) ActorScheduler(io.camunda.zeebe.util.sched.ActorScheduler) StreamProcessorLifecycleAware(io.camunda.zeebe.engine.processing.streamprocessor.StreamProcessorLifecycleAware) StreamProcessor(io.camunda.zeebe.engine.processing.streamprocessor.StreamProcessor) ReadonlyProcessingContext(io.camunda.zeebe.engine.processing.streamprocessor.ReadonlyProcessingContext) CountDownLatch(java.util.concurrent.CountDownLatch) TypedRecordProcessorFactory(io.camunda.zeebe.engine.processing.streamprocessor.TypedRecordProcessorFactory)

Aggregations

ActorScheduler (io.camunda.zeebe.util.sched.ActorScheduler)15 StreamProcessor (io.camunda.zeebe.engine.processing.streamprocessor.StreamProcessor)7 LogStreamReader (io.camunda.zeebe.logstreams.log.LogStreamReader)7 ZeebeDb (io.camunda.zeebe.db.ZeebeDb)5 ZeebeDbFactory (io.camunda.zeebe.db.ZeebeDbFactory)5 ReadonlyProcessingContext (io.camunda.zeebe.engine.processing.streamprocessor.ReadonlyProcessingContext)5 StreamProcessorLifecycleAware (io.camunda.zeebe.engine.processing.streamprocessor.StreamProcessorLifecycleAware)5 StreamProcessorListener (io.camunda.zeebe.engine.processing.streamprocessor.StreamProcessorListener)5 StreamProcessorMode (io.camunda.zeebe.engine.processing.streamprocessor.StreamProcessorMode)5 TypedEventRegistry (io.camunda.zeebe.engine.processing.streamprocessor.TypedEventRegistry)5 TypedRecordProcessorFactory (io.camunda.zeebe.engine.processing.streamprocessor.TypedRecordProcessorFactory)5 CommandResponseWriter (io.camunda.zeebe.engine.processing.streamprocessor.writers.CommandResponseWriter)5 EventApplier (io.camunda.zeebe.engine.state.EventApplier)5 EventAppliers (io.camunda.zeebe.engine.state.appliers.EventAppliers)5 MutableZeebeState (io.camunda.zeebe.engine.state.mutable.MutableZeebeState)5 LogStreamBatchWriter (io.camunda.zeebe.logstreams.log.LogStreamBatchWriter)5 LogStreamRecordWriter (io.camunda.zeebe.logstreams.log.LogStreamRecordWriter)5 LoggedEvent (io.camunda.zeebe.logstreams.log.LoggedEvent)5 LogStorage (io.camunda.zeebe.logstreams.storage.LogStorage)5 SyncLogStream (io.camunda.zeebe.logstreams.util.SyncLogStream)5