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]

Reply via email to