ValOS architecture reimagines the Web with change as its fundamental unit of information.
State handling is the number one source of complexity in large-scale software systems. Superficial attempts at containing this complexity results in data silos and technical debt.
Event sourcing pattern simplifies state management in complex domains. Instead of storing the current state of data, it keeps a record of events that describe changes to that data.
Knowledge graphs break data silos by arranging data in a network of nodes and links rather than tables of rows and columns. Semantic Web is the standardized and distributed version of knowledge graphs.
ValOS creates a synthesis of these two innovations by using event sourcing to store distributed knowledge graphs. It then extends the two ideas from business domains to the technical domain. In ValOS, graphs represent everything from data to application structure, logic and interfaces. Events in turn represent changes in these graphs.
Gateways translate human and system interactions into event streams and vice versa.
Event-based systems are usually scoped to handle very specific data. Knowledge graphs in turn often have a very steep learning curve. Most developers are comfortable working with state when tackling isolated problems.
The Gateway sits between the event architecture and developers, systems and users. It provides simple APIs that make working on complex systems feel like simple state manipulation. Operations are automatically translated into new events and pushed to their respective streams.
As a modular software stack, the Gateway can run as a whole or in parts on top of browsers and servers. Like an operating system, it's layers have distinct responsibilities ranging from event stream connectivity and security to computation and user interfaces.
Events describe modifications to Semantic Web resources expressing data, logic and interfaces.
Ontologies are the way to define meanings for resources in knowledge graphs. Semantic Web uses RDF (Resource Description Framework) to describe these. Usually ontologies tackle specific business domains, such as real estate or transportation.
ValOS introduces a simple, low-level RDF ontology to describe it's primitive computational resources. Entities are like classes, objects and file folders. Relations express connections between resources. Medias refer to binary data such as images or script files.
ValOS Resources can describe anything from a simple sensor reading to a complex application structure and logic. At the same time they can express data in any higher-level domain ontology.
Like servers or databases, Authorities receive, confirm, store and distribute event streams.
In the earlier and simpler days of the Web, servers stored and served static documents. This made them in essence databases that browsers directly interact with. Standard has since evolved to the three-tier architecture with servers and databases separated.
In ValOS, a single event stream is analogous to a Web document with elevated capabilities. Authorities act as event brokers and Gateways interact directly with them. As a result, Authorities resemble the servers of the early Web. The return of this direct connection between clients and databases also revives the Web's original vision by giving users freedom and control over their data.
The open source Gateway contains most of the architectural complexity of ValOS. Authorities on the contrary are simple by design and can be either open or closed. Authorities can also act as proxies to external databases by creating and serving virtual event streams.
Interconnected event streams hosted in different Authorities form a
decentralized network. It's like the Web, but inherently simple.
The Web is a collection of interconnected documents linked together by URLs. In ValOS, events can create URL-based references between Resources across streams and Authorities. As a result, working on decentralized systems in ValOS is as simple as it is to create and use hyperlinks. The globally unified state emerging from the interconnected event streams is known as Valospace.
But you can't make an omelette without breaking a few eggs. Changing how the Web works at a very fundamental level eradicated decades worth of technical debt, but also rendered a lot of tooling obsolete. Together with the community we are rebuilding this software ecosystem on simpler foundations. We will soon publish a list of open standards and tools that we are working on.