RealtimeLifecycleClient constructor

RealtimeLifecycleClient({
  1. required LifecycleBootstrapConfig bootstrap,
  2. required SocketTransportPort transport,
  3. required ClockPort clock,
  4. required SchedulerPort scheduler,
  5. required AuthCallbackPort authCallback,
  6. required RecoveryCoordinatorPort recoveryCoordinator,
  7. LifecycleSignalSource signals = const _NoopSignalSource(),
  8. TelemetrySinkPort telemetry = const _NoopTelemetrySink(),
  9. EphemeralPublishPort? ephemeralPublisher,
  10. EnvelopeDecoderPort? envelopeDecoder,
  11. EventDispatcher? eventDispatcher,
  12. SubscriptionIntentRegistry? intentRegistry,
  13. DurableEventDeduplicator? dedup,
  14. DedupPolicy dedupPolicy = _defaultDedup,
  15. BackoffPolicy backoff = _defaultBackoff,
  16. 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);
}