Hi @mordex
This is a classic high-frequency orchestration problem on Databricks. The core issue is that Databricks job clusters are designed for batch workloads, not sub-5-minute polling loops.
Job clusters have a ~3–5 min cold start. For a 1-min frequency API, you're spending more time starting the cluster than running the actual work. This is fundamentally the wrong tool for that cadence.
Option 1: All-Purpose Cluster with Internal Scheduling (Most Practical)
Keep your existing workflow structure but run it on an all-purpose cluster that stays alive. Inside the notebook, manage the frequency loop yourself:
Option 2: Databricks Jobs + Delta Queue Pattern (Most Robust)
A dispatcher job that writes due API calls into a Delta table queue
A long-running worker job that polls the queue and executes calls
The queue table DDL
The dispatcher logic with the SQL to identify due APIs
Option 3: Structured Streaming with foreachBatch
If your APIs can be modeled as a micro-batch stream, Structured Streaming on an all-purpose cluster handles variable-frequency polling natively.
Given you already have a view-based config and ForEach pattern, Option 2 (Delta Queue) is the cleanest long-term solution. But if you need something working fast, Option 1 (all-purpose cluster + threading) gets you there today with minimal refactoring.
The key insight is: separate the scheduling decision from the execution. Your view already stores the frequency — you just need a lightweight process that reads it and dispatches work, rather than having the cluster itself restart to make that decision.
LR