Every architectural decision in
@sonarlis was made with one constraint in mind: the score has to arrive before the trader needs to act.
Everything else is secondary to that.
Speed over completeness. A partial score delivered in 30sec is more valuable than a perfect score delivered in 5min. Every analyzer runs asynchronously with a strict timeout. The pipeline never waits for a slow signal. If one analyzer does not complete in time, the remaining signals are weighted and the score is delivered without it.
Modularity by design. Each analyzer is an independent module. Adding a new signal does not require changing the existing ones. The ingestion layer abstracts chain-specific logic, which means supporting a new chain comes down to implementing a new listener. The analysis engine and scoring logic remain the same.
Calibration before deployment. No parameter goes live without validation. We replay historical token launches through the same pipeline, split the data into training and test sets, and measure precision before anything is exposed to users. The scoring model is not based on assumptions. It is based on observed behavior.
Lean infrastructure.
The current setup runs on:
4 CPUs,
8gb of RAM,
Docker Compose on a Hetzner VPS,
Redis for fast score reads,
and PostgreSQL for persistent data.
Built to be simple now, without limiting how it scales later.
We are not building features. We are building infrastructure. The kind that becomes more valuable the more chains, traders, and protocols depend on it.