| 1 | Redis cache okuma | Zorunlu | Cache miss → DB fallback |
| 2 | automations okuma (is_active + next_run_at) | Zorunlu | Tetiklenecek otomasyonlar belirlenir |
| 3 | automation_runs insert (pending) | Zorunlu | Yürütme kaydı açılır |
| 4 | automations.status = running | Zorunlu | Aynı otomasyonun çift tetiklenmesi önlenir |
| 5 | cinga.automation.command.requested publish | Zorunlu | Event device_command_id referansı taşır |
| 6 | Communication tarafında device_commands okuma | Zorunlu | Komut çözümleme Communication katmanında yapılır |
| 7 | automation.job.completed.v1 consume | Koşullu | Başarılı iletimde |
| 8 | automation.job.failed.v1 consume | Koşullu | Hata durumunda |
| 9 | automation_runs güncelle (status + codes) | Zorunlu | Her iki yolda da çalışır |
| 10 | automations güncelle (run_count + sonuç) | Zorunlu | Son çalışma bilgisi yazılır |
| 11 | automations.next_run_at hesapla | Koşullu | Yalnızca interval tipi |
| 12 | automations.status güncelle | Zorunlu | pending / completed olarak kapatılır |
| 13 | Redis cache invalidate | Zorunlu | Tutarlılık için |