UMA Universal Microservices Architecture Buy the book

Universal
Microservices
Architecture

Device-Independent Modelling for Modern Software Design with WASM

Modern systems now execute across browser, edge, backend, workflows, and AI-assisted flows. UMA is an execution model for distributed systems where compute can happen in many places and the system decides where logic runs, while keeping behavior portable, inspectable, and coherent.

Build portable, runtime-agnostic systems without duplicating business logic across platforms.

Traditional monolith, microservice, frontend, and backend boundaries do not solve the newer problem: the same business behaviour now has to survive across web, mobile, server, edge, and AI-driven execution contexts.

Most architecture drift starts after the service is “done.”

01

Logic fragments across runtimes

Developers duplicate the same logic across client, server, and edge stacks, creating drift, inconsistent UX, and wasted effort.

02

Runtime choices become hidden architecture

Placement, transport, adapters, and orchestration decide outcomes, but those decisions rarely stay visible in the system model.

03

Trust and policy arrive late

Security, enforcement boundaries, and provenance often get layered on after the fact, when portability is already producing risk.

04

Evolution becomes fragmentation

Version sprawl, duplicated behavior, and runtime drift make distributed systems harder to scale, reason about, and sustain.

UMA treats service logic, contracts, runtime policy, transport, security, and observability as one architectural system. The book and the repo are designed to make that model visible, teachable, and runnable.

The shortest portable summary is not “write once, run everywhere.” It is: write once, run where it makes sense.

If you want the shortest explanation of the gap UMA addresses, start with what problem UMA solves. If you already agree with the gap, move straight into the reference app or the examples.

WHAT YOU CAN DO WITH UMA

A cold reader should be able to answer one question quickly: what does UMA let me do that is still painful in a typical stack-first system? These are the concrete outcomes the site, repo, and reference app are trying to prove without requiring you to adopt the whole model at once.

Keep one behavior portable, governed, and explainable across many execution surfaces.

Move one capability across runtimes

Keep the core behavior stable while browser, edge, cloud, and WASI runtimes change around it.

Expose why the runtime chose a path

Make proposals, approvals, rejections, and trace artifacts visible instead of burying them in framework glue and logs.

Let AI participate without becoming the system

Use agents for proposal and ranking while the runtime stays authoritative over validation, policy, and final execution.

WHY UMA FEELS DIFFERENT

What common platform stacks are good at

  • Deploying services reliably
  • Routing traffic and enforcing infra policy
  • Scaling hosts, containers, and workloads
  • Adding observability around running systems

What UMA adds on top

  • One portable unit of business behavior across runtimes
  • Runtime-visible capability discovery and workflow approval
  • A clearer boundary between proposal and authority
  • Queryable decision traces instead of opaque execution side effects

UMA is not trying to replace Kubernetes, service meshes, or WebAssembly tooling. It is trying to answer a different architectural question: how do you keep one behavior coherent as it crosses many runtimes, policies, and workflow surfaces?

WHAT YOU WILL LEARN

The book explains the principles and building blocks of UMA, how it differs from older architectural models, and how to design enterprise applications that are portable, modular, and runtime-agnostic using WebAssembly.

A progression from one portable service to governed system evolution.

Portable logic

Learn how to structure, compile, version, and preserve business logic across environments without binding it to one stack.

Runtime architecture

Understand transport layers, contracts, orchestration, trust boundaries, and operational patterns for distributed execution.

System evolution

See how UMA scales across domains, teams, and AI-generated workflows without turning into fragmented delivery pipelines.

CORE CONCEPTS

If you want to understand UMA without jumping straight into the full repo or book flow, start with these concept pages. They explain the minimum vocabulary behind the reference app and the later chapters.

The core ideas become clearer when capability, workflow, runtime, and discovery are kept separate.

What is WASM MCP?

The visible discovery surface that exposes capabilities to the runtime.

Agent vs runtime

Why planning and architectural authority must remain separate.

READER LEARNING PATH

Follow the tutorials
sequence chapter
by chapter.

Every stop answers one concrete architectural question before sending the reader to the next concept.

Chapter 1

Why software architecture keeps fragmenting

Why do modern systems keep duplicating logic across runtimes?

Sets up the problem UMA addresses: platform drift, brittle delivery models, and repeated business behavior across stacks.

Chapter 3

Why UMA is needed

What gap does UMA close in current distributed software design?

Connects the conceptual problem to a portable, runtime-agnostic service model that can survive across environments.

Chapter 5

Post Fetcher Runtime

What belongs in the runtime layer?

See validation, adapter binding, and lifecycle evidence around a pure service.

Chapter 7

Metadata Orchestration

How does orchestration emerge from contracts and events?

Watch policy, subscriptions, and telemetry shape a distributed flow.

Chapter 9

Trust Boundaries

What governs portability when trust matters?

Introduce identity, permissions, provenance, and runtime trust decisions.

Chapter 11

Evolution Without Fragmentation

How does a system keep changing without splitting apart?

Follow drift, duplication, version sprawl, and runtime-governed recovery.

Chapter 2

From stack ownership to behavior ownership

What changes when architecture centers on behavior instead of tiers?

Reframes design around portable behavior, contracts, and runtime responsibilities instead of fixed application boundaries.

Chapter 6

Portability Lab

How do you prove portability instead of assuming it?

Compare the same service across native and WASI with observable parity.

Chapter 8

Service Graph Evolution

How do systems grow without hidden rewiring?

See a service graph emerge from compatibility and change over time.

Chapter 10

Architectural Tradeoffs

Which decisions preserve runtime coherence?

Compare coherent and degraded designs through runtime-visible outcomes.

Chapter 12

Discoverable Decisions

How does a governed UMA system expose decisions as queryable artifacts?

Close the journey by making projections, proposals, validation feedback, and trace artifacts visible end to end.

Chapter 13

Portable MCP Runtime

How do distributed capabilities, MCP, eventing, and runtime authority produce one structured result?

Finish the path with a Rust-first reference experience that discovers capabilities, validates proposals, coordinates events, and delivers a French report.

HANDS-ON

From architecture to execution.

Universal Microservices Architecture is not presented as theory alone. The book is backed by a maintained GitHub repository with practical, chapter-by-chapter examples that let readers see the model in action. Instead of stopping at principles, the material continues into runnable labs, validated flows, and implementation parity across the examples.

The result is a learning experience that moves from explanation to execution: read the concept, inspect the code, run the tutorial, and see how UMA behaves across real examples.

chapter-06-portability-lab

Chapter 6

Prove portability by comparing the same service across native and WASI execution with observable parity.

chapter-08-service-graph

Chapter 8

See how compatible services form a graph and evolve without hidden rewiring or brittle orchestration.

chapter-09-trust-boundaries

Chapter 9

Introduce identity, permissions, provenance, and runtime trust decisions into the portable execution model.

chapter-12-discoverable-decisions

Chapter 12

Make projections, proposals, validation feedback, approved execution, and trace artifacts discoverable as first-class outputs.

chapter-13-portable-mcp-runtime

Chapter 13

Discover distributed capabilities through MCP descriptors, coordinate them through the UMA runtime, and produce a structured French report with authoritative validation.

WHO THIS BOOK IS FOR

UMA is for software architects, senior engineers, and technical leads designing modern enterprise systems.

For architects

It provides a concrete model for decoupling software design from platform constraints while preserving architectural clarity.

For platform engineers

It turns contracts, transport, policy, and placement into visible operational design choices instead of hidden runtime detail.

For technical leads

It offers a practical path to scaling client applications, aligning teams, and preparing for modular AI-assisted workflows.

ABOUT THE AUTHOR

Enrico Piovesan is a platform software architect with 20+ years of experience building cloud-native, event-driven, and modular systems.

In large tech companies, he focuses on scalability, performance, developer experience, and architecture that does not just scale, but lasts.

Enrico Piovesan writes from platform and product reality.

Enterprise scale

Brings experience from cloud-native, event-driven systems built to survive long product lifecycles and organizational complexity.

Startup background

Co-founded ventures in education, travel, and payments, always working at the intersection of innovation and delivery.

Architectural focus

Focuses on modular systems, developer experience, and architectural models that preserve autonomy while scaling across teams.

UMA BLOG