Free tools Windows power users keep installed
One-click scans. No signup required.
Partly. In the September 14, 2026 walkthrough, an existing Sekiban DCB business model is reused: its domain code is referenced by a separate WebAssembly project, and the projector and list-query work runs inside SekibanWasmRuntime. The command handlers stay in the API process, so the API still receives requests, runs the existing handler, and produces the event. The walkthrough does not claim a zero-change migration, and it describes a preview-era package set, so treat it as an integration pattern rather than a production-ready recipe.
Where the boundary sits
The most useful way to read the example is to ask, for each piece of the application, where it executes. The walkthrough uses a C# student, class and course-registration application. Only part of it moves.
As an Amazon Associate I earn from qualifying purchases.
| Component | Where it runs in the walkthrough | What it does there |
|---|---|---|
| Command handler | API process (unchanged) | Receives the registration request, applies the business rules, and creates the event. Existing endpoints keep calling ExecuteAsync(command). |
| Business/domain code | Referenced by a separate Wasm project | Supplies the model types and rules that the Wasm side needs. |
| Projector | Wasm-hosted, inside SekibanWasmRuntime | Builds state from events. |
| List queries | Wasm-hosted, inside SekibanWasmRuntime | Serves list-query work. |
| Event storage | PostgreSQL, used by the runtime container | Persists events; the example uses a dedicated database defined in AppHost. |
Read the table as a boundary, not a migration. Nothing in the example moves the whole Web API into Wasm, and command handlers are not executed by the runtime.
The request path, step by step
- A client sends a course-registration request to the API.
- The existing command handler runs and applies the business rules, creating an event.
- The API passes the event to the runtime through
RemoteSekibanExecutor, which is registered asISekibanExecutor. - The runtime stores the event in PostgreSQL.
- The Wasm-hosted projector updates state, and list queries are answered from that state.
What you add to an existing project
The author summarizes the change in one sentence: “The business code remains the same, but we add the entry point for calling Wasm, type registration, and API connection settings.” The walkthrough breaks that work into six items.
#1 Best Overall
A Wasm project that references your business code
The existing business code stays where it is and is referenced by a separate Wasm project. That project is the build target for the runtime module, so it must compile on its own before AppHost starts.
An entry point and type registration
The Wasm project needs an entry point that the runtime can call, and the types it uses must be registered so the runtime can resolve them. The API side needs its own connection settings for the runtime.
A manifest that maps the module
The manifest maps the module to its events, projectors and queries. It is the document that tells the runtime which code handles which part of the event stream.
Rank #2
A Docker-based build script
A project build script publishes the Wasm project for the wasi-wasm target inside Docker, then validates the generated module with wasm-tools. Docker is therefore a build prerequisite in this setup, not only a runtime convenience.
AppHost wiring for the runtime and database
AppHost gets configuration for the runtime container and a dedicated PostgreSQL database. The runtime depends on that database for event persistence.
Remote executor registration in the API
The API registers RemoteSekibanExecutor as ISekibanExecutor. Existing endpoints can keep calling ExecuteAsync(command), which is why the command side needs little visible change.
Versions used in the example
The walkthrough records the following versions, dated September 14, 2026. They describe that example only and are not current compatibility advice. Package versions and the container version belong to separate version series.
Quick wins for a faster PC:
Clear out junk files and repair common Windows errorsFree Scan →Scan for outdated or missing drivers - takes under a minuteDriver Scan →| Component | Version in the walkthrough | Version series |
|---|---|---|
| .NET | 10 (SDK) | .NET 10 line |
| Sekiban.Dcb | 10.19.0 | Sekiban DCB package |
| Sekiban.Dcb.WasmRuntime.Aspire | 1.0.0-preview.6 | WasmRuntime package preview |
| Sekiban.Dcb.WasmRuntime.Remote | 1.0.0-preview.6 | WasmRuntime package preview |
| Runtime container | 1.0.0-preview.3 | Container preview, numbered separately from the packages |
Building and launching locally
The walkthrough’s local launch follows this sequence. Each step depends on the one before it.
- Install the .NET 10 SDK and Docker Desktop.
- Run the project’s build script. It publishes the Wasm project for
wasi-wasminside Docker. - Confirm the generated module passes validation with
wasm-tools. A failed validation means the module should not be used by AppHost. - Build the dedicated Wasm project before starting AppHost. AppHost expects the module to exist.
- Start AppHost. It uses Aspire environment variables to launch PostgreSQL, the runtime container and the API.
In the walkthrough, the generated module was 25,282,599 bytes. That figure is one build’s output, and the author notes that size changes as the code changes. Do not read it as a benchmark or a size target.
Rank #4
The preview workaround: SEKIBAN_WASM_POOL_SIZE=0
The walkthrough sets SEKIBAN_WASM_POOL_SIZE=0 to avoid a wait issue that appears with consecutive list updates in that preview version. The author states that this value is not a production-recommended setting and had not been evaluated for production use. Treat it as a local workaround tied to that release. Do not carry it into a deployment, and do not use it as a general tuning value.
Package roles and language support
J-Tech Japan’s July 6, 2026 announcement describes SekibanWasmRuntime as a Wasm event-sourcing and CQRS runtime. At announcement time it named C# and Rust as the prepared language packages. The CTO’s July 2, 2026 walkthrough describes the runtime host as C# on Orleans, and it separates the C# packages by role.
PC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minute| Package role (as described by the CTO) | Where it sits | Used in the example? |
|---|---|---|
| Shared contract | Referenced on both sides for types they share | Yes, through the Wasm project and the API |
| Remote HTTP client | API side, calling the runtime over HTTP | Yes, as RemoteSekibanExecutor |
| In-process Wasmtime host | Inside a .NET process that runs the Wasm module directly | Not in the walkthrough’s path, which uses the runtime container |
The walkthrough’s path uses the public runtime container, which connects to PostgreSQL for event persistence. Other language packages named at announcement time are not covered by this example.
Best Value
Licensing and hosting boundary
The license decides what you can do with the runtime, and it is separate from the technical setup.
- The July 6, 2026 announcement states that the source is public under the Elastic License 2.0.
- The CTO’s July 2, 2026 walkthrough states that self-hosting and internal use are allowed.
- A third-party hosted or managed service that provides the runtime’s main capabilities requires a separate commercial license.
- Read the license text for your specific deployment. The announcement’s summary is not a substitute.
Is your model on DCB?
The current Sekiban repository recommends DCB for new projects and places Sekiban.Pure and Sekiban.Core in maintenance mode. If your existing model is built on Pure or Core rather than DCB, this walkthrough does not describe your starting point directly.
What the evidence does not establish
- Production readiness. The walkthrough is preview-era and the author says the pool-size workaround was not evaluated for production.
- Performance. No latency, throughput or cost measurement is published for this walkthrough, and no comparison with running the handlers in the API alone is available.
- Security. The company describes Wasm as the boundary for executing uploaded domain code: “Wasmを「アップロードされたドメインコードを安全に実行するための境界」として採用しました。” That is the company’s design rationale, not independent security validation.
- Availability and hardening. Nothing in the reviewed material covers high availability or deployment hardening.
- Adoption. No independent adoption figures were found.
- Compatibility. The version table reflects one dated example. Check current package and container releases before you start.
Until those questions are answered by separate validation, plan the integration as a preview experiment inside a bounded project.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Quick Recap
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.




