chore: removal of nullable fields

Closed
HA
6d ago
+4072-8350

Summary

Removing nullable fields where possible - source of errors.

Type of Change

  • Bug fix (non-breaking change that fixes an issue)
  • New feature (non-breaking change that adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Documentation update
  • Refactoring (no functional changes)
  • CI/CD or tooling changes

Test Plan

  • Unit tests pass (uv run pytest)
  • E2E tests pass (npx playwright test)
  • Manual testing performed

Manual test steps:

Checklist

  • My code follows the project's style guidelines
  • I have run pre-commit run --all-files and all checks pass
  • I have added tests that prove my fix/feature works
  • I have updated documentation if needed
  • My changes don't introduce new warnings

Summary by cubic

Replaced in-process lifecycles with DI and moved message handling to FastStream. Removed UnifiedConsumer/EventDispatcher and the coordinator; EventBus is removed; NotificationService self-starts; SSE now uses a stateless event router with a connection registry.

  • Refactors

    • Providers & DI: remove EventBus; start Kafka producer via DI; replace EventStoreConsumer with EventStoreService; remove factory helpers; add BoundaryClientProvider/RedisServicesProvider; replace SSE Kafka→Redis bridge with SSEEventRouter + SSEConnectionRegistry.
    • Messaging & Workers: drop UnifiedConsumer/EventDispatcher; adopt FastStream for K8s worker, result processor, saga, and DLQ processor; delete ExecutionCoordinator/QueueManager/ResourceManager; keep UnifiedProducer.
    • SSE & Notifications: remove SSEShutdownManager; SSEService requires explicit SSE_HEARTBEAT_INTERVAL; NotificationService starts background tasks on creation; UserSettingsService now uses Redis-backed cache (no EventBus invalidation).
    • Schema & Idempotency: switch to dataclasses-avroschema (Confluent wire format); add ResourceUsageAvro with a domain adapter; replace IdempotentEventHandler/wrapper with FastStream IdempotencyMiddleware.
  • Migration

    • Remove EventBusManager/EventBus; publish via KafkaEventService; delete any initialize(...) or manager.get_event_bus() calls.
    • Stop using create_* helpers (e.g., SSEKafkaRedisBridge, SSEShutdownManager, DLQManager, SagaOrchestrator, PodMonitor); rely on DI; use SSEEventRouter and SSEConnectionRegistry for SSE.
    • Remove UnifiedConsumer/EventDispatcher usage; use FastStream subscribers and the new workers (including DLQ).
    • Update references to K8sWorkerLogic, ProcessorLogic, and SagaLogic; ExecutionCoordinator/QueueManager/ResourceManager are removed.
    • Drop is_running flags; use status snapshots or shutdown events as needed.
    • Replace IdempotentEventHandler/IdempotentConsumerWrapper/idempotent_handler with FastStream IdempotencyMiddleware.
    • Migrate from pydantic-avro to dataclasses-avroschema; use ResourceUsageAvro in events (domain adapter provided).

Summary by CodeRabbit

  • New Features

    • SSE bridge with reliable Redis-backed routing and connection registry; expanded Kubernetes worker (pod lifecycle, daemonset pre-pull, wait-for-active creations); saga and result-processing logic exposed for DI; user settings now use Redis-backed cache.
  • Refactor

    • Centralized dependency and lifecycle management via DI providers; idempotency enforced as FastStream middleware; notifications simplified to batch/internal delivery.
  • Removed

    • Legacy coordinator and EventBus flows, older consumer/dispatcher and idempotency wrappers.
  • Tests

    • Expanded DI-friendly fixtures, fakes and updated tests.
  • Chores

    • Dependency and packaging updates.

✏️ Tip: You can customize this high-level summary in your review settings.