gzurowski commented on code in PR #1683:
URL: https://github.com/apache/camel-website/pull/1683#discussion_r3508000175
##########
content/blog/2026/07/camel421-whatsnew/index.md:
##########
@@ -0,0 +1,419 @@
+---
+title: "Apache Camel 4.21 What's New"
+date: 2026-07-03
+draft: false
+authors: [ davsclaus, squakez ]
+categories: [ "Releases" ]
+keywords: ["apache camel", "whats new", "camel 4", "release", "camel 4.21",
"integration framework"]
+preview: "Details of what we have done in the Camel 4.21 release."
+---
+
+Apache Camel 4.21 has just been [released](/blog/2026/07/RELEASE-4.21.0/).
+
+This release introduces a large set of new features and noticeable
improvements that we will cover in this blog post.
+
+## Camel Core
+
+### Error Registry
+
+The Error Registry has been enhanced to capture rich exchange data snapshots
at error time,
+following the same pattern as BacklogTracer. This includes the message body,
headers, exchange properties,
+and variables — giving you a complete picture of what was happening when the
error occurred.
+
+Error registry configuration has moved to a dedicated `camel.errorRegistry.*`
prefix:
+
+```properties
+camel.errorRegistry.enabled=true
+camel.errorRegistry.maximumEntries=100
+camel.errorRegistry.timeToLiveSeconds=300
+```
+
+The error registry integrates with the route diagram rendering, allowing you
to visualize the
+exact path a failed exchange took through your routes.
+
+### Route Topology
+
+A new route topology service computes inter-route relationships — which routes
send messages to
+which other routes (via `direct`, `seda`, `kafka`, etc.). The topology is
available through a dev console
+and powers the new topology diagram rendering in both the CLI and the
embeddable web component.
+
+See the dedicated [Route Topology](/blog/2026/06/camel-route-topology/) blog
post for more details.
+
+### Group-Scoped Variables
+
+Variables can now be scoped to a route group. When multiple routes share a
`routeGroup`,
+they can share variables within that group scope using `variable.group:myVar`:
+
+```java
+from("direct:a").routeGroup("myGroup")
+ .setVariable("group:counter", simple("${variable.group:counter}++"))
+ .to("direct:b");
+
+from("direct:b").routeGroup("myGroup")
+ .log("Counter is ${variable.group:counter}");
+```
+
+### Exchange Memory Optimization
+
+We made significant work to reduce memory pressure on the Exchange object:
+
+- **Copy-on-write headers**: Message headers are now shared across exchange
copies (multicast, splitter, etc.)
+ and only copied when actually modified, reducing allocation overhead.
+- **Lazy initialization**: Several internal data structures on the Exchange
are now initialized lazily,
+ reducing the baseline memory footprint.
+- **O(1) CaseInsensitiveMap**: The default `CaseInsensitiveMap` used for
message headers now uses a custom
+ hash table with zero-allocation lookups and header key deduplication, making
the external
+ `camel-headersmap` dependency unnecessary (now deprecated).
+
+### Virtual Threads
+
+When virtual threads are enabled, the `threads()` EIP now honors `maxQueueSize`
+for backpressure. Previously, `maxQueueSize` was silently ignored and tasks
were accepted unboundedly.
+
+A new `Block` rejected policy has been added to `ThreadPoolRejectedPolicy`,
where the caller blocks
+until capacity becomes available.
+
+### JSpecify Null Annotations
+
+The `camel-api` module now uses `@NullMarked` and `@Nullable` annotations from
JSpecify to document
+nullability contracts across the Camel API surface. This enables compile-time
null checking with tools like NullAway.
+
+### Simple Language
+
+Several improvements to the Simple language:
+
+- `floor`/`ceil` now return `long` instead of `int` to avoid overflow for
large values.
+- `range(N)` in csimple now starts at 1 (consistent with the `simple`
language).
+- The internal implementation has been refactored into domain-aligned builder
classes for better maintainability.
+
+## Camel CLI
+
+Camel JBang has been rebranded as **Camel CLI** in the documentation.
+
+### Camel TUI
+
+The Camel TUI (Terminal User Interface) is a new feature in heavy development,
and we will publish
Review Comment:
```suggestion
The Camel TUI (Terminal User Interface) is a new feature currently in heavy
development, and we will publish
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]