On this page
What microservices solve
Microservices decompose large systems into independently deployable services. Each service owns its domain, can be scaled independently, and can be built by a separate team in a separate language.
This is genuinely useful. A monolith that grew too large, a team that needs to ship without coordinating with six other teams, a service that needs 10x the capacity of everything else. Microservices handle these cases well.
The pattern is well understood, well tooled, and battle-tested. It is not going anywhere.
What Traverse solves
Traverse solves a different problem. Imagine a pricing rule. It needs to run in the browser for instant feedback. It needs to run at the edge for fast confirmation. It needs to run in a cloud worker for fulfillment. It needs to run in an AI pipeline that handles quotes.
Four runtimes, one rule. Without Traverse, each environment reimplements the rule. They drift. A bug gets fixed in the cloud but not the browser. An eligibility change ships to the API but not the AI pipeline. The rule you thought was consistent is actually four different versions of the same idea.
Traverse compiles that rule to a single WASM binary with a machine-readable contract. Every environment loads the same binary. The contract is enforced before every execution. A trace artifact is produced every time.
Key differences
| Dimension | Microservices | Traverse |
|---|---|---|
| Unit of deployment | A service with an endpoint, a container, an API | A governed WASM binary with a contract |
| Communication | Over the network: HTTP, gRPC, message queues | In-process: no network hop, runs where the caller runs |
| Contracts | Implicit: API docs, OpenAPI specs, informal agreements | Machine-readable, enforced before every execution |
| Execution traces | Not produced by default. Requires logging or tracing setup. | Produced for every execution, structured and queryable |
| Portability | Services run in specific environments, typically containerized | Same binary in browser, edge, cloud, and AI pipeline |
| Primary concern | System decomposition, independent scaling, team autonomy | Consistent, governed business logic across environments |
When to use which
Use microservices when
- You need to decompose a large system into independently scalable parts
- Multiple teams need to own separate domains without coordination overhead
- You need different services to use different technology stacks
- Independent deployment cadences matter per service
Use Traverse when
- A business rule needs to run identically in multiple environments
- You need enforced contracts and audit trails on business logic
- Logic drift between environments is causing bugs or compliance issues
- An AI pipeline needs to call the same logic your backend already uses
Calling a Traverse capability from a microservice
This is what the integration looks like in practice. A pricing microservice uses Traverse to execute the pricing logic. The logic is identical to what runs in the browser and in the AI pipeline.
The pricing service owns its API surface, its deployment pipeline, and its scaling. Traverse owns the pricing logic. Neither intrudes on the other.
The verdict
If you run microservices, Traverse is additive. Pick one service where logic drift between environments is causing the most pain. Replace that logic with a Traverse capability. The service stays a microservice. The logic becomes governed.
If you are starting fresh and deciding on architecture, use microservices for system decomposition. Use Traverse for business logic that will need to run in more than one kind of environment.
They are good at different things. Both is often the right answer.