When 41 of 20,000 Message Batches Requests Quietly Vanished — Field Notes on Reconciling and Requeuing Partial Failures
processing_status: ended does not mean every request succeeded. How errored and expired results hide inside a finished batch, and how a custom_id ledger catches every gap and requeues safely — with real cost and timing numbers.
Measure Streaming CPU and Dropped Chunks to Stabilize Long Batch Jobs
You start an overnight batch, and by morning only half of it finished. The culprits were CPU pinned during streaming and a quiet connection drop. Here is a monitor wrapper that measures stream CPU and throughput, and resumes from interruptions.
Grouping Crashes by Root Cause: A Triage Design Built on the Claude API
Crashlytics 'Issues' often scatter the same root cause across separate entries. After years of running apps with 50M+ cumulative downloads, here is how I use the Claude API to regroup crashes by actual root cause and rank them, with working code and real numbers.
Anthropic API Cost Optimization Guide: Cut Your Monthly Bill by 50–70%
A complete guide to reducing your Anthropic API costs by 50–70%. Covering model selection, Prompt Caching, batch processing, and token reduction — with production-ready code you can apply to your app today.
Claude API Messages Batches: Cutting Production Costs by Up to 50% with Async Processing
Field notes from running the Claude API Messages Batches API in production. Polling design, composite custom_id keys, the 29-day result expiry trap, and the real cost numbers from three months of nightly batches.