Current view
3D Stage

3D Stage

The Three.js scene now runs directly inside the Next app.

Idle

No current crawler activity and no waiting queue backlog.

Left-drag to orbit, right-drag to pan, scroll or double-click to zoom. Regular polling is poller-driven off shared PostgreSQL state, not backend-triggered every cycle. Redis here is the Celery broker queue used by the poller. Queue items: 0. Worker events: 0. Crawler events: 0.

Legend

What the colors and shapes mean.

Yellow boxes: queue or scheduler items waiting to be worked.
Blue spheres: worker picked up or polling.
Amber spheres: worker retrying.
Red spheres: worker failed before crawler.
Orange diamonds: crawler activity.

Flow

How backend, poller, and crawler fit together, including one-way vs two-way links.

Backend
Two-way flow
PostgreSQL
Two-way: backend reads and writes the main Feedbagel data model in Postgres.
PostgreSQL
Two-way flow
Poller scheduler / worker
Two-way: poller reads due feeds and entries from Postgres, then writes polling/crawl results back. This is the normal background handoff.
Scheduler
One-way flow
Redis queue
Scheduler enqueues Celery jobs into Redis.
Redis queue
One-way flow
Poller worker
Worker pulls jobs out of the queue.
Poller worker
Two-way flow
Crawler service
Two-way: worker sends crawl requests, crawler returns extracted feed/article data.
Crawler service
One-way flow
Backend / DB
Results then get persisted downstream.
Backend does real work too: API routes, admin, feed/search logic, and direct DB writes. It does not just front the poller. Normal recurring polling is poller-driven from shared Postgres state. Backend/admin can still influence that state through flags like force-crawl and poll-now flows.
Camera
Move or jump
Live Activity
polling
No recent activity

Services

Loading remote services...

Queued

Nothing waiting in Redis right now.

Worker

No recent worker task events.

Crawler

No recent crawler events.