AO doc(original): https://ao.arweave.dev/#/read
AO is a decentralized computer network built on the Arweave blockchain, offering a distributed computing environment where multiple parallel processes operate independently but are interconnected. This system leverages the actor model for concurrency, allowing processes to communicate through a unified message-passing protocol. AO's structure is designed to provide a cohesive, unified experience across a diverse network of nodes, enabling scalable, decentralized applications.
The Actor Model, introduced by Carl Hewitt and others, is a framework for concurrency in computer systems. It defines the "actor" as the basic unit of computation, capable of making decisions, creating actors, sending messages, and handling incoming messages. This model supports the design of distributed, highly concurrent, and scalable applications.
In AO, a process embodies the actor concept as the computation unit of the network. Defined by a log of interacting messages and initialization data stored on the Arweave blockchain, each process specifies its required computing environment, including the VM, memory, and other necessary resources. These processes, much like actors, operate independently and can receive messages from user wallets or other processes, enabling their state to evolve dynamically. This adaptability allows AO's processes to handle complex computations across a distributed network, making them versatile, scalable, and fault-tolerant, effectively serving as the backend service of your application.
In AO, messages are the primary data items representing every interaction with a process, serving as the main means of communication between processes (actors). Users and processes can send messages through scheduler units, ensuring isolated yet complex coordination. Each message is stored on Arweave, creating a permanent record of interactions that contribute to a process's state. The message passing system in AO is designed for asynchronous communication, guaranteeing that each message is delivered only once.