← All field notesEngineering · April 22, 2026 · 6 min read

Why Nexus runs on Bedrock and not directly on a single model provider

Choosing AWS Bedrock over a direct OpenAI or Anthropic SDK was the call that defined our roadmap. Here is what we considered.

Bilal KhanCo-founder

When we started Nexus, the easy path was to wire OpenAI directly. The SDK is mature, the docs are great, and the streaming experience is well documented. We did the opposite — every model call goes through Bedrock's Converse API.

The reason: support customers in the GCC do not get to bet their support stack on one model provider. Customers ask procurement questions ("which jurisdictions process our data?"), legal questions ("can we host the entire pipeline in-region?"), and continuity questions ("if your provider has an outage, what happens?"). Bedrock answers all three with one yes.

The harder reason: model leadership rotates. Two years ago Anthropic was ahead on long context. A year ago Mistral was ahead on price-per-token at small sizes. Today, Amazon Nova is ahead on Arabic. By the time we built tier-1 routing on a single provider, the rankings would have shifted again.

Bedrock's Converse API gave us a single shape for tool use, guardrails, and streaming, across providers we have not even committed to yet. Swapping our default tier-2 model is a one-line change in models.config.ts.

It cost us a quarter of pure infrastructure work — KB ingestion via S3, Vector backend, Guardrails wiring, and our own retry stack on top of the streaming SDK. We do not regret it.