Header banner for The Signal newsletter by Scalac. Black background with red geometric accents. Text reads: "MAY 2026 / THE SIGNAL / What matters in the distributed systems." Scalac logo in the bottom right.

THE SIGNAL: What matters in distributed systems | #3

Header banner for The Signal newsletter by Scalac. Black background with red geometric accents. Text reads: "MAY 2026 / THE SIGNAL / What matters in the distributed systems." Scalac logo in the bottom right.

May 2026 | Issue #3

Welcome back. This month Oracle proposed removing JVMCI and Amazon pushed back. Anthropic published a postmortem on Claude Code. OpenAI shipped WebSocket Responses API. MCP landed in the Java world. And JetBrains shipped Koog 1.0 at KotlinConf, a production AI agents framework for the JVM. Below is a filter, not a firehose.


Today: What to watch this month


The Architecture Debate: Oracle Wants to Kill JVMCI

16:12Editorial illustration: tug-of-war between two groups of stick figures — Oracle on the left and Cloud Vendors on the right — pulling a rope attached to a JVMCI module bolted to a JVM engine in the center.

Oracle opened JDK-8382582: a proposal to remove the JVM Compiler Interface. JVMCI is the API that allows third-party JIT compilers — notably GraalVM — to plug into the JVM. Without it, GraalVM becomes an ahead-of-time compiler only.

Why Oracle wants it gone. JVMCI exposes deep JVM internals that evolve every release. It is a maintenance burden. Oracle argues the ecosystem should move to standardized APIs. The vision: C2 is good enough for almost everyone.

Why Amazon and GraalVM object. Amazon runs GraalVM JIT at scale. It outperforms C2 on short-lived containers and lambda-style execution. Removing JVMCI means either forking the JDK, migrating thousands of services to native image, or accepting worse performance. Red Hat raises governance: if Oracle can unilaterally remove a core API, what is the value of OpenJDK?

The fracture risk is real. If JVMCI dies, GraalVM ships as its own JDK. Two JVMs. Libraries test against both. “Write once, run anywhere” cracks further.

Scalac angle: Using GraalVM native image? You are safe. Using GraalVM JIT? Track this now. Earliest removal is JDK 29. Evaluate whether your workloads actually benefit from Graal JIT over C2. If marginal, standardize on stock OpenJDK and avoid the politics. If yes, budget for a JDK vendor relationship with GraalVM support.


Notes from the Trenches: When Claude Code Broke in Production

Editorial illustration: stick figures feeding code boxes into a production machine labeled "PROD", with Claude Code glowing red inside it. On the right, three figures raise alarms with warning speech bubbles.

Anthropic published a postmortem on a production incident involving Claude Code.

The incident. Claude Code executed file operations outside its intended scope. The agent had broad filesystem access for a refactoring task. The LLM hallucinated a path — confusing src/ with config/ — and the tooling executed without a secondary check. No human was in the loop. The task was marked “routine.”

The root cause was not the hallucination. That was the trigger. The root cause was the absence of a sandbox boundary. Anthropic’s tooling trusted LLM output at face value. No validation layer. No capability model. No automatic rollback.

The fix. Three changes: (1) explicit time-bound permissions per session; (2) sandboxed file operations with human approval for writes outside the working directory; (3) automatic rollback if test suites fail after an agent session.

Scalac angle: Treat any AI agent with write access as a junior developer with root. Never give unbounded filesystem access. Define a capability model: read where, write where, what needs approval. Run agent sessions in ephemeral containers with automatic rollback. The productivity gain is real, but the blast radius of a hallucination with write access is your entire repository.


Signal Over Noise: Three Critical Changes This Month

1. OpenAI ships WebSocket Responses API

OpenAI released a WebSocket-based Responses API last month. You open a persistent connection and receive LLM responses as real-time deltas. This cuts latency from hundreds of milliseconds to tens. For voice agents and real-time copilots, this is a protocol-level change. REST and SSE still work, but WebSocket is now the default for latency-sensitive applications.

2. MCP lands in the Java world

Model Context Protocol has been dominated by TypeScript and Python. InfoQ published guidance on bringing MCP to JVM-based systems and the core idea is simple: expose your services, databases, and internal APIs as MCP-compatible tools that any AI agent can discover and call. If you are building AI-integrated systems on the JVM, start designing internal APIs with MCP semantics: tool discovery, schema validation, structured error responses.

3. Scala’s Growth Model asks hard questions

This essay argues that Scala is building inward (better compiler, better type system, better tooling for existing users) but starving outward (declining new-adoption curve, fewer fresh graduates, companies defaulting to Java or Rust). The data is anecdotal, but the resonance is real. For CTOs betting on Scala long-term, the question is not “is Scala technically superior?” — it is “will I be able to hire for it in 2028?” The essay does not answer, but it asks the right question. If you are investing in Scala 3, read it and decide whether your hiring pipeline matches your technical ambitions.


In the Know

DoorDash LLM Testing System – How to evaluate LLMs in production before they touch real users.

sbt 2.0.0-RC13 – Last milestone before GA. Plugin compatibility is the final blocker.

Scala Native 0.5.11 – Better POSIX signal handling. Viable for CLI tooling and scripting.

skunk 1.0.0 – Pure-functional Postgres driver. API frozen after 5 years.

SIP-80 – Target-Typed Companion Shorthand. Less .apply ceremony in generic code.

Koog 1.0 – JetBrains’ production AI agents framework for JVM/KMP. Stable API, Spring AI integration, OpenTelemetry on every target. ai.koog:koog-agents:1.0.0


Top Resources

Repo to watch: sbt 2.0.0-RC13 – The final migration checklist for plugin authors. If your build uses custom plugins, this is where you start.

Article to read: MCP in the Java World – Architectural guidance on bringing Model Context Protocol to JVM-based systems. Read it before your next AI integration decision.

Paper to read: KIP-1066: Broker Cordoning – The design document for Kafka broker cordoning. Short, precise, contains the exact AdminClient API changes you need.


What is SIGNAL?

SIGNAL is a monthly, opinionated newsletter for JVM and Scala teams who run real distributed systems. Each issue has three sections — Architecture Debate, Notes from the Trenches, Signal Over Noise — and focuses only on changes and incidents that matter in production, not on hype or vendor marketing.

Scalac builds high‑throughput systems in Scala, Java, and Rust; SIGNAL is the filter we wish we had when making our own architecture bets.


References

Get the State of

Scala 2025 report

Download now

Latest Blogposts

02.06.2026 / By 

THE SIGNAL: What matters in distributed systems | #3

Header banner for The Signal newsletter by Scalac. Black background with red geometric accents. Text reads: "MAY 2026 / THE SIGNAL / What matters in the distributed systems." Scalac logo in the bottom right.

Here is what matters in distributed systems this month. Oracle proposed removing JVMCI — Amazon pushed back. Anthropic published a Claude Code production postmortem. OpenAI shipped WebSocket Responses API. MCP lands on the JVM.

28.05.2026 / By 

Shipping Faster Doesn’t Mean You Understand What You’ve Shipped

Two abstract figures: one rushing to ship code, one standing confused over what was built — illustration for article on AI-generated code and understanding

Łukasz Marchewka, CTO at Scalac, on the question most engineering teams have stopped asking: does anyone actually understand what we're building?

19.05.2026 / By 

Scalendar – June 2026

Welcome to the June 2026 edition of Scalendar — your monthly roundup of Scala events, meetups, conferences, and community happenings from around the world. This month features a strong mix of Scala, functional programming, data engineering, and AI-focused events, highlighting how Scala continues to play an important role in modern backend systems, distributed computing, and […]

software product development

Need a successful project?

Estimate project