Abbeal

Tech radar

Tech Radar 2026 Q2: Rust, ROS 2, OpenTofu, Pinecone, Claude in Adopt.

Criteria, field reports, trade-offs. What we actually adopt vs what we assess.

12 min

Methodology

Abbeal's Tech Radar is inspired by the ThoughtWorks matrix, adapted to our tri-geo context. Every three months, Tech Leads from the three hubs (Paris, Montréal, Tokyo) vote on 30 to 40 key techs. Four levels:

  • **Adopt** — validated in production on at least 3 missions, performant, maintainable. Default mandate on new missions.
  • **Trial** — positive validation on 1-2 client missions. Recommended if project context fits. Escape hatch required.
  • **Assess** — promising but not yet tested in prod. To experiment with in POC or side project. Not in critical client missions.
  • **Hold** — tech we're actively retiring, or advising against starting with. With documented rationale.

The vote is not democratic: each Tech Lead brings measurable data (latency, memory, time-to-merge, bugs, learning curve). Choices are documented in a Notion file shared with clients under mission.

Adopt — production-ready in Q2 2026

Backend & systems

**Rust** moves to Adopt in Q2 2026 (was Trial in 2025). Four missions delivered in pure-prod: Tokyo Robotics, Urban Mobility performance-critical API, FinTech high-load ETL, CloudFlare Workers edge proxy. The Adopt move comes from ecosystem maturity (Tokio 1.x stable, Axum, SeaORM, sqlx) and senior skills convergence. Decisive argument: 60-80% memory savings vs Java/Go on high-concurrency workloads, without C++'s productivity compromise.

**ROS 2 Humble** in Adopt. De facto standard for industrial robotics. Our stack for Tokyo Robotics client (warehouse automation +40% throughput). Complete migration from ROS 1 Noetic for all new projects.

**OpenTofu 1.7** in Adopt (was Trial 2025). The open-source Terraform fork has reached maturity. State migration tested and documented. We actively migrate existing Terraform missions to OpenTofu at renewals.

AI / Data

**Anthropic Claude** in Adopt for critical enterprise workloads (compliance, security, long context window). Claude 3.7 Sonnet is our default for production agents. GPT-4o still used as complement on specific use cases.

**Pinecone** Adopt confirmed. Reference vector DB for enterprise RAG use cases. Evaluated alternatives (Weaviate, Qdrant, pgvector) remain in Trial or Assess.

**LangChain + LangGraph** in Adopt for agent workflows. Stable, large community, direct integration with Pinecone and our observability stack.

Frontend

**Next.js 15 App Router + RSC** in Adopt for all new Web projects. Pages Router in legacy mode only.

**Tailwind CSS 4** in Adopt. New Lightning CSS engine, faster to build, more stable.

Cloud & Reliability

**Karpenter** in Adopt. Replaces Cluster Autoscaler by default on EKS. -25 to -35% cloud cost measured across 8 missions (cf. Urban Mobility case -30% AWS).

Trial — positive validation, recommend per context

  • **Bun** — Performant Node.js drop-in replacement. Tested on 2 backend missions, 3× faster for imports + tests. Not yet validated for Edge Workers / Lambda.
  • **Astro** — Excellent for marketing & docs sites. Not for interactive apps — Next.js remains Adopt.
  • **Mojo** — Promising language for data engineering / ML. Community still small. Not in client mission, but in active internal POC.
  • **DSPy** — LLM programming framework (instead of prompt engineering). Evaluated in prod on a critical RAG agent. Positive ROI on prompt maintenance.
  • **LiteLLM** — Multi-LLM proxy (OpenAI / Anthropic / Mistral). Enables dynamic routing and fallback. Useful for multi-vendor clients.
  • **Pulumi** — For teams preferring TypeScript / Python over HCL Terraform.

Assess — POC only, not critical missions

  • **Tauri 2** — Rust alternative to Electron for desktop apps. Bundle 10× smaller, but growing ecosystem.
  • **Effect-TS** — TypeScript functional programming. Steep learning curve. Proven value on side-effect robustness.
  • **Cloudflare Workers AI** — Very fast edge AI inference. Limited models (no GPT-4o or Claude). Good for specific edge use cases.
  • **Hugging Face TGI** — For self-hosting open-source models in prod. Validated in POC, awaiting a client mission requiring it.

Hold — avoid or retire

**Cypress standalone** in Hold (was Adopt in 2023). Active migration to Playwright. Justifications: Playwright has 3× CI time, native multi-browser support, integrated debugger, more active community. Migration documented in 5 steps (cf. SaaS B2B client case).

**Jest standalone** in Hold. Migrating to Vitest (Jest API compatible, 5-10× faster hot reload, native ESM). Low-effort migration.

**Webpack 5** in Hold for new projects. We use Vite or Turbopack (Next.js 15). Webpack remains maintained on legacy but we don't start on it anymore.

**MongoDB** in Hold. PostgreSQL + pgvector + JSONB covers 95% of use cases that previously justified MongoDB. PostgreSQL ← MongoDB migrations documented on 4 missions.

**Redux Saga** in Hold. Too much boilerplate. We use TanStack Query (server state) + Zustand (client state). Migration documented.

**OpenAI Assistants API legacy** in Hold. Architecture too opaque, high vendor lock-in. We use direct SDKs with LangChain / LangGraph orchestration.

How we use it on client missions

On every new Abbeal mission, the Tech Radar is part of the technical mandate negotiated at kick-off:

  1. **Default mandate**: mission stack composed of Adopt techs unless explicit client agreement.
  2. **Escape hatch**: if client wants to deviate from Adopt (e.g. keep legacy MongoDB or Cypress), we document the derogation with justification + eventual migration plan.
  3. **Quarterly review**: every 3 months, we review with the client whether Trial techs we've deployed move to Adopt on Abbeal side, and whether the contract should adapt.

This discipline lets a client engaging Abbeal on a 12-24 month mission guarantee they won't be stuck on an obsolete tech by the end.

What changes in Q3 2026

Our next Tech Radar (August 2026) will closely watch:

  • **Mojo** to move to Adopt if community keeps growing
  • **Cloudflare Workers AI** for Tokyo edge inference use cases
  • **Bun** to confirm Adopt move after 4 client missions
  • **Sentry Hold** in favour of PostHog or Datadog observability complete
  • **DSPy Adopt** if prompt maintenance in prod confirms

Working on something similar?

Talk to an architect