storystarling
6 hours ago
I built a similar internal ledger for my print-on-demand setup because the image generation costs were eating all the margin.
The architecture that finally worked was treating every agent action as a transaction against a Redis counter. We use Celery for the heavy lifting, but the worker has to acquire a lock and deduct credits atomically from Redis before it can even call the external provider. If the balance hits zero, the task fails immediately. It adds a bit of latency but it’s the only way I found to prevent a runaway loop from draining the credit card.