Skip to content

chore: removal of nullable fields#96

Open
HardMax71 wants to merge 21 commits intomainfrom
removal-of-nullable-fields
Open

chore: removal of nullable fields#96
HardMax71 wants to merge 21 commits intomainfrom
removal-of-nullable-fields

Conversation

@HardMax71
Copy link
Copy Markdown
Owner

@HardMax71 HardMax71 commented Jan 19, 2026

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).

Written for commit 4b104db. Summary will update on new commits.

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.

Loading
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant