RealtimeLifecycleClient constructor
RealtimeLifecycleClient({
- required LifecycleBootstrapConfig bootstrap,
- required SocketTransportPort transport,
- required ClockPort clock,
- required SchedulerPort scheduler,
- required AuthCallbackPort authCallback,
- required RecoveryCoordinatorPort recoveryCoordinator,
- LifecycleSignalSource signals = const _NoopSignalSource(),
- TelemetrySinkPort telemetry = const _NoopTelemetrySink(),
- EphemeralPublishPort? ephemeralPublisher,
- EnvelopeDecoderPort? envelopeDecoder,
- EventDispatcher? eventDispatcher,
- SubscriptionIntentRegistry? intentRegistry,
- DurableEventDeduplicator? dedup,
- DedupPolicy dedupPolicy = _defaultDedup,
- BackoffPolicy backoff = _defaultBackoff,
- RandomSource? random,
Implementation
RealtimeLifecycleClient({
required LifecycleBootstrapConfig bootstrap,
required SocketTransportPort transport,
required ClockPort clock,
required SchedulerPort scheduler,
required AuthCallbackPort authCallback,
required RecoveryCoordinatorPort recoveryCoordinator,
LifecycleSignalSource signals = const _NoopSignalSource(),
TelemetrySinkPort telemetry = const _NoopTelemetrySink(),
EphemeralPublishPort? ephemeralPublisher,
EnvelopeDecoderPort? envelopeDecoder,
EventDispatcher? eventDispatcher,
SubscriptionIntentRegistry? intentRegistry,
DurableEventDeduplicator? dedup,
DedupPolicy dedupPolicy = _defaultDedup,
BackoffPolicy backoff = _defaultBackoff,
RandomSource? random,
}) : _bootstrap = bootstrap,
_transport = transport,
_clock = clock,
_scheduler = scheduler,
_authCallback = authCallback,
_recoveryCoordinator = recoveryCoordinator,
_telemetry = telemetry,
_ephemeralPublisher = ephemeralPublisher,
_envelopeDecoder = envelopeDecoder ?? defaultEnvelopeDecoder,
_eventDispatcher = eventDispatcher ?? DomainEventDispatcher(),
_intentRegistry = intentRegistry ?? DefaultSubscriptionIntentRegistry(),
_dedup = dedup ?? BoundedDurableEventDeduplicator(dedupPolicy),
_backoffPolicy = backoff,
_random = random {
_eventDispatcher.onUnknown((domain, type) {
_record(UnknownTypeIgnoredTelemetryEvent(at: _clock.now()));
});
signals.subscribe(_handleLifecycleSignal);
}