WebAssembly platform company Cosmonic has raised $8.5 in seed funding in a round lead by Vertex Ventures. It also launched a Platform-as-a-Service version of its WebAssembly distributed application development platform.
Cosmonic’s PaaS is built on the open source wasmCloud, currently a Cloud Native Computing Foundation sandbox project. It provides a message bus, based on the NATS open-source messaging system, to connect different instances of wasmCloud together, similar to a service mesh in Kubernetes. It also uses a hot-pluggable component model for defining applications as a collection of standardized components.
“We think of WebAssembly as a virtual machine for an individual process,” said Liam Randall, CEO of Cosmonic. “And then our idea was, just like service meshes, let’s make common services available everywhere rather than putting authentication and distributed tracing and logging and metrics into each app separately. Why not include all of the components that are common to every application—the database drivers, security components, libraries—and make them available everywhere?”
This idea grew out of Randall’s experiences as VP of Innovation at Capital One, where he oversaw the development and adoption of open source technologies.
“One of the things I realized was we were looking across a fleet of 5000-or-more applications that we built in-house, and over 95% of the source code was identical. Even more than that, it was just boilerplate that were were copying from app to app,” he said.
WasmCloud components provide a set of high-level capabilities, defined by an interface—or contract—that describes how a component will behave. Components with the same interface can be swapped out, online. By combining this idea with a message bus, components can be made available from anywhere in the Cosmonic mesh. Applications become composable collections of standard infrastructure components made available anywhere in the mesh combined with app-specific business logic.
Developers can focus on application specific logic, and spend much less time dealing with infrastructure issues, while platform teams can focus on building high-quality, composable services that application developers consume. The combination of hot-swappable components and automatic networking means maintenance and change becomes a fully online activity.
“We want to build Cosmonic in the same way that AWS built their cloud,” Randall said. “When you’re building on Cosmonic you’re using these composable blocks to build your applications. You can use the capabilities we provide for you, or you can extend our capabilities and add new things that didn’t exist before. And you can build, test, and run the same code wherever you like: private cloud, public cloud, at the edge, wherever you’d like to go.”
Cosmonic is focused on customers that operate their own capital assets and are interested in distributed applications, more than those who focus on centralization in a single public cloud. Power companies, manufacturing, financial services, and other verticals that have substantial custom software needs and that require a more hybrid or distributed approach.
A challenge for Cosmonic, and indeed all the new WebAssembly focused companies, will be interfacing with existing applications and data sources that aren’t using WebAssembly. We saw a similar challenge with Kubernetes adoption as ephemeral, stateless workloads gave way to stateful workloads. It’s the data that makes important applications useful for a business, and that data lives in existing data stores.
“Docker really rode that wave, that most of what went into the cloud was just taking things that were already running and putting them in containers,” Randall said. “I’m sure somebody will put Kubernetes in WebAssembly. But the vast majority of applications that will be developed will be greenfield on these new platforms. WebAssembly is the future of distributed computing.”
I look forward to watching the future arrive in real time.