Back to Blog
2 min read

Candle Service Fixes: Inclusive Timestamps, User Agents, and Discovery

Respecting Inclusive Timestamps

I fixed the Gecko client to respect its inclusive before_timestamp semantics (9596a616). An off-by-one on an inclusive boundary means you either re-fetch the same candle forever or skip one. I also fixed admin queue accuracy in the same commit—the queue view was reporting counts that didn’t match what the workers actually had pending.

Custom User Agents

I set a custom user agent on the HTTP clients and marked an upstream as exhausted when it returns errors (c0439b6c). A proper user agent is polite and often the difference between being served and being blocked. Treating repeated upstream errors as exhaustion stops a worker from hammering a dead endpoint.

Discovery and Drag Curves

I expanded the discovery queries and added a drag-curve worker plus API (e5291416). Drag curves track how a token’s price behaves after an initial move, which is useful for characterizing follow-through versus fade. Adding it as a worker means it runs continuously and exposes results through the same API surface as everything else.

API Examples

I updated the API docs to use an actual dev key in the examples (4a361094) so consumers can copy-paste a working call instead of a placeholder that fails.

Integration Work Is the Work

A data aggregation service lives or dies on its upstream integrations. Today was all boundary handling: inclusive semantics, rate limits, user agents, and error classification. None of it is glamorous, but it’s what makes the data trustworthy.

Newer post

Regime Feeds, Volume Workers, and Curation in Candle Service

Older post

Standing Up Candle Service: A Market Data Aggregation API