chore: removal of nullable fields
Closed
HA
6d ago+4072+4072+0123456789012345678901234567890123456789-8350-8350-0123456789012345678901234567890123456789
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-filesand 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.