tasks ਨੂੰ due time ਨਾਲ keyed ਇੱਕ time-bucketed / priority queue ਵਿੱਚ store ਕਰੋ, ਸਿਰਫ਼ ਹੁਣ due tasks ਨੂੰ poll ਕਰੋ, ਅਤੇ ਉਹਨਾਂ ਨੂੰ at-least-once delivery ਨਾਲ idempotent workers ਨੂੰ ਸੌਂਪੋ। ਹਰ tick ਉੱਤੇ 1 ਕਰੋੜ rows ਕਦੇ scan ਨਾ ਕਰੋ — fire time ਨਾਲ index ਕਰੋ ਤਾਂ ਜੋ ਹਰ poll ਸਿਰਫ਼ ਉਸਨੂੰ ਛੂਹੇ ਜੋ due ਹੈ।
ਆਰਕੀਟੈਕਚਰ
API ─▶ Task store (DB/Redis ZSET, score = due_ts) ── 10M tasks, sharded
│
Poller (leader per partition) ── ZPOPMIN due<=now ──▶ Ready queue (Kafka)
│ leader election (etcd/ZK) │
▼ ▼
other pollers idle/standby Worker pool (idempotent)
└─ ack ✔ / retry ✖ ─▶ DLQ
