Make task dependencies behave automatically in our task tool: when a blocking task is completed, any dependent task should switch from “Blocked” to “To Do” and notify its assignee in real time. The experience should feel instant and reliable. Under the hood, use our existing stack (Flask + MySQL + RabbitMQ): the API records status changes and emits a task_status_changed event; a background worker resolves newly unblocked tasks, updates them, and publishes task_unblocked; the notification service listens and pushes alerts via SSE. Please keep the flow decoupled, fault-tolerant, and scalable.