SIVARO
What we run and why

Tools we will defend, and the ones we stopped using.

Each choice below has a reason and a limit. Click a tool to see where it wins and where we would not put it.

Storage and query

ClickHouse

The default for analytical reads at scale. Column codecs, materialised views and TTL tiering give us three separate levers on cost before anyone talks about bigger machines.

WINS AT Sub second aggregation over billions of rows
NOT FOR High concurrency single row updates. That stays in Postgres.
12ms
p99 read
40 to 60%
storage cut
Postgres

Still the right answer for transactional workloads and anything that needs real constraints. We keep it and stop asking it to do analytics.

WINS AT Correctness, constraints, row level writes
NOT FOR Dashboard queries over hundreds of millions of rows.
source of truth
role
no
analytics
Snowflake

Fine to arrive on, expensive to stay on when the workload is a small number of queries run very often. We migrate off it when the profile says so, not by default.

WINS AT Ad hoc exploration, low ops burden
NOT FOR Always on dashboards refreshing on a schedule.
$47K / mo
seen at
$8.2K
after move

Streaming

Kafka

Partitioning that survives a spike and consumer lag you can see before a customer does. Most of the pain we get called about is configuration, not the broker.

WINS AT Durable ingest at hundreds of thousands of events per second
NOT FOR A queue for three jobs a minute. Use something smaller.
200K
events / sec
zero
dropped
Kafka Connect

Worth it when the connector already exists and the transformation is simple. Not worth it when the pipeline logic belongs in code you can test.

WINS AT Standard source and sink plumbing
NOT FOR Business logic dressed up as a connector config.
declarative
setup
harder
debugging

Serving and orchestration

Kubernetes

The scheduler is the point. We autoscale on request load rather than CPU, because CPU is a proxy that lies during a spike.

WINS AT Multi workload clusters with real autoscaling
NOT FOR A single service with steady traffic. That is a VM.
request load
scale on
automatic
rollback
Karpenter

Provisions the node the pod actually needs instead of the node group somebody sized last year. The savings are real and they are also easy to lose to bad consolidation policy.

WINS AT Bursty, mixed workloads on spot capacity
NOT FOR Long running jobs that cannot tolerate interruption.
34% lower
seen
disruption budgets
watch
vLLM

Throughput per GPU is where the inference bill is decided. Continuous batching moves that number more than a bigger instance does.

WINS AT High concurrency LLM serving
NOT FOR Single request latency on a tiny model.
continuous
batching
per query
cost view
Go

Predictable latency without garbage collection pause spikes, which is usually why the gateway rewrite happens in the first place.

WINS AT API gateways and hot paths
NOT FOR Data science work. That stays in Python.
18K rps
per instance
zero
gc pauses

Delivery and observability

Terraform

Every environment reproducible, every change reviewable. The alternative is a console click nobody remembers making.

WINS AT Multi cloud infrastructure with an audit trail
NOT FOR Fast local experiments. Do those by hand.
reproducible
environments
reviewed
changes
Helm

Versioned manifests that a new engineer can read on their first Monday. Boring on purpose.

WINS AT Repeatable Kubernetes deploys
NOT FOR Templating so clever nobody can debug it.
canary
deploys
in repo
runbooks
MLflow

Answers the question that matters after an incident: which model version served that request, and what trained it.

WINS AT Model lineage and experiment tracking
NOT FOR A full serving platform. It is not one.
tracked
lineage
alerted
drift

Three rules that decide what goes in.

Somebody here has broken it

We only put a tool in a client system if one of us has already hit its failure mode in production. Reading the documentation does not count.

Your team can operate it

If running it needs a specialist you do not employ, it is the wrong choice however good the benchmark looks.

The cost is legible

You should be able to answer what a single query costs. Tools that hide that make the bill impossible to defend later.

Tell us what you run. We will tell you what breaks first.

Or start with the layer you can check yourself, in about 40 seconds.

Scan my domain

P.S. The stack question is free to ask. Send the founders your architecture.