Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Partly. In the September 14, 2026 walkthrough by Kary, a C# student, class and course-registration application built on Sekiban DCB keeps its command handlers on the API side and moves projector and list-query work into SekibanWasmRuntime, where that projection code runs as WebAssembly. The existing domain code is reused, but the API itself is not moved into Wasm, and no command handler is rewritten to run there. The walkthrough is a preview-era integration example. It is not evidence that the stack is ready for production.

What SekibanWasmRuntime is

J-Tech Japan’s July 6, 2026 announcement describes SekibanWasmRuntime as a WebAssembly event-sourcing and CQRS runtime. At announcement time it listed C# and Rust as the prepared language packages. The source is public under Elastic License 2.0.

A later walkthrough by J-Tech Japan’s CTO (July 2, 2026) describes the runtime host as C# on Orleans, and separates the C# packages into three roles:

  • a shared contract package,
  • a remote HTTP client, which the API uses to talk to the runtime,
  • an in-process Wasmtime host.

The same walkthrough describes the public runtime container as connecting to PostgreSQL for event persistence.

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Where the boundary sits

The most important point for an existing codebase is what stays where. The table below uses the Kary walkthrough’s architecture.

Part of the system Where it runs in the example Notes
Incoming HTTP endpoints API Existing endpoints keep calling ExecuteAsync(command).
Command handlers API The existing handler applies the business rules and creates the event. It is not moved into Wasm.
Domain and business code Referenced by both the API and a separate Wasm project The Wasm project references the same model code.
Event storage Runtime, backed by PostgreSQL The runtime container writes to a dedicated PostgreSQL database.
Projector (state) work Wasm, hosted by the runtime The projector runs inside SekibanWasmRuntime.
List-query work Wasm, hosted by the runtime Served through the Wasm-hosted projector.

If your application’s command handling is spread across the API and you expect it to move too, this example does not show that.

How a registration request flows

  1. The API receives a registration request and runs the existing command handler.
  2. The handler applies the business rules and creates an event.
  3. The API sends that event to the runtime through RemoteSekibanExecutor, registered as ISekibanExecutor.
  4. The runtime stores the event in PostgreSQL.
  5. The Wasm-hosted projector updates state, and list queries are answered from that projection.

Kary’s summary of the integration work is direct:

“The business code remains the same, but we add the entry point for calling Wasm, type registration, and API connection settings.”

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

That sentence describes the example’s additions, not a general migration path.

What you add to an existing project

The walkthrough adds code and configuration in two places.

On the Wasm side

  • A Wasm project that references the existing business code.
  • A Wasm entry point and type registration so the runtime can call into the model.
  • A manifest that maps the module, its events, its projectors and its queries.
  • A Docker-based build script that produces the Wasm module.

On the API and hosting side

  • AppHost configuration for the runtime container and a dedicated PostgreSQL database.
  • API registration of RemoteSekibanExecutor as ISekibanExecutor.

The walkthrough does not claim zero-change migration. Plan for these additions as real work.

Build and local launch

These steps follow the walkthrough’s local setup. Its Wasm project must be built before AppHost starts.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  1. Install the .NET 10 SDK and Docker Desktop.
  2. Run the project’s build script. It publishes the Wasm project for wasi-wasm inside Docker, then validates the generated module with wasm-tools.
  3. Build the dedicated Wasm project before starting AppHost. AppHost will not run correctly against a stale or missing module.
  4. Start AppHost. It uses Aspire environment variables to start PostgreSQL, the runtime container and the API.

In the author’s build log, the generated Wasm file was 25,282,599 bytes. The walkthrough notes that size changes as the code changes, so treat it as an example from one build, not a benchmark or a general figure.

Versions used in the walkthrough

These values are from the September 14, 2026 walkthrough. They are the versions its author used, not current compatibility advice.

Component Version in the walkthrough Version series
.NET .NET 10 .NET release line
Sekiban.Dcb 10.19.0 Sekiban DCB package line
Sekiban.Dcb.WasmRuntime.Aspire 1.0.0-preview.6 Runtime package series
Sekiban.Dcb.WasmRuntime.Remote 1.0.0-preview.6 Runtime package series
Runtime container 1.0.0-preview.3 Container series, versioned separately from the packages

The package and container numbers follow separate version series, so a matching number does not mean they were released together.

The preview workaround: SEKIBAN_WASM_POOL_SIZE=0

The walkthrough sets SEKIBAN_WASM_POOL_SIZE=0 to avoid a wait issue during consecutive list updates in that preview version. The author states plainly that this is not a production-recommended value and was not evaluated for production. Use it only to reproduce the walkthrough locally. Do not carry it into a deployment without testing it yourself.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Licensing and deployment

The July 6, 2026 announcement states the Elastic License 2.0. The CTO walkthrough adds the practical boundary. Read the license text itself before you rely on either summary.

Self-hosting and internal use

The CTO walkthrough says self-hosting and internal use are allowed under the license.

Third-party hosted or managed service

According to the same walkthrough, a third-party hosted or managed service that provides the runtime’s main capabilities requires a separate commercial license.

Which Sekiban implementation this applies to

The current Sekiban repository recommends DCB for new projects and places Sekiban.Pure and Sekiban.Core in maintenance mode. The featured walkthrough is a Sekiban DCB example. If your existing model is built on Sekiban.Pure or Sekiban.Core, the walkthrough does not directly describe your setup.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

What is not established

  • Production readiness. The walkthrough is preview-era and describes a single example.
  • Performance. No latency, throughput or cost measurements have been published for this integration.
  • Security. J-Tech Japan’s announcement describes Wasm as the boundary for safely running uploaded domain code. That is the company’s stated design rationale, not independent security validation.
  • High availability and deployment hardening. Neither is covered by the walkthrough.
  • Compatibility beyond the snapshot. The version table reflects one dated example. Check current package and container releases before you build.

Those questions remain open until they are tested against your own workload.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.