OrionJS 4.5 separates Echoes from the rest of the framework. @orion-js/echoes can now run in a
plain Node.js service without loading Orion’s schema, services, HTTP, environment, helpers, or
logger packages.
OrionJS minor releases are coordinated: every @orion-js/* package is published as 4.5.0.
Upgrade all OrionJS packages used by an application together instead of mixing 4.4 and 4.5 package
dependencies inside the same process.
Existing Orion applications keep the same schema cleaning and validation, dependency injection,
HTTP routes, logger context, and error classes through the new @orion-js/echoes-orion adapter.
The event and request wire formats have not changed, so 4.4 and 4.5 services can communicate while
you deploy the migration incrementally.
Choose your migration path
Applications using Components
Upgrade Echoes and Components, along with the rest of the OrionJS packages used by the application:
@orion-js/components installs and initializes the Orion adapter automatically. Existing Echoes
controllers can continue using raw Orion schemas and @Inject():
No controller rewrite is required.
Orion applications using Echoes directly
If the application does not import @orion-js/components, install the adapter explicitly:
Import it once in the application entrypoint, before importing any module that declares an Echoes
controller:
Import order matters for decorated classes. The adapter must be installed before @Echoes()
runs so Orion can capture @Inject() metadata for that controller.
Services that do not use Orion
Install only the standalone package:
Echoes accepts SimpleSchema-compatible objects with clean() and validate() methods. Use
typedEchoesSchema() when you want to attach a TypeScript value type to the runtime schema:
For another schema library, install an adapter once with configureEchoesRuntime():
Runtime schema behavior is preserved
Echoes 4.5 still executes this pipeline for every handler:
- Deserialize the incoming value.
- Clean handler parameters.
- Validate handler parameters.
- Run the resolver.
- Clean the return value.
- Serialize the response.
The Orion adapter delegates parameter cleaning and validation to
@orion-js/schema.cleanAndValidate() and return cleaning to @orion-js/schema.clean(). Defaults,
custom cleaners, custom validators, field types, and ValidationError therefore behave as they
did in 4.4.
Install the event transports you use
Kafka and Pulse are now optional peers. Neither is loaded when a service only uses synchronous
Echoes requests.
For Kafka:
For Pulse:
The existing configuration remains valid:
If you are migrating event traffic from Kafka to Pulse, follow the
incremental Kafka-to-Pulse rollout.
Standalone HTTP receivers
Orion applications continue registering /echoes-services through @orion-js/http. Standalone
services provide a small registrar for their HTTP framework:
The default request client now uses Node.js HTTP and HTTPS directly, including redirects, retries,
and timeouts. Axios and jssha are no longer required application dependencies.
Recommended rollout
- Upgrade listener services first.
- Verify that Orion apps load
@orion-js/echoes-orion, directly or through Components.
- Install
kafkajs explicitly in every service that still uses Kafka.
- Deploy publishers after listeners are healthy.
- Run the compiler, build, and application tests.
Because the wire format is unchanged, this can be a normal rolling deployment. No MongoDB data
migration, Kafka topic migration, or coordinated downtime is required for the 4.5 package upgrade.