4. Arcology Architecture
Last updated
Last updated
To achieve the Arcology’s design goals, it naturally demands a flexible, scalable and loosely-coupled system architecture for client software. At the core of Arcology client software is a microservice base architecture.
The only way to enhance blockchain infrastructure to a level that it could support millions of transactions is through horizontal scaling. In this type of design, functional modules are individually deployed on multiple machines connected by high speed network.
Microservice architecture is inherently suitable for this. In Arcology, all key functional modules are encapsulated into services and deployed on different machines to spread the workload. All services communicate asynchronously via a message queue system. We chose this architecture model for the following reasons:
Easy integration
Loose coupling
Distributed computing
Flexibility
As any software designer will admit, introducing new features during active production can introduce unknown technical risks that may affect and impede development. With Arcology’s microservice architecture, we abstracted all key functional modules into discrete functions so they can be developed, tested and integrated individually.
Some modules in Arcology require good performance, whiles others need greater productivity. Arcology’s microservice architecture allows different services to be developed using different technology stacks.
Services are loosely coupled and communicate through a messaging system. Any internal changes happened to one service is transparent to others.
It’s not unusual for any network or system to run out computational power when faced with unusual high volumes of user requests. Some current blockchain networks are well-designed to handle this, but they’re far from perfect.
Arcology’s architecture maximizes efficiency during moments of high demand by automatically adding resources only when the workload is high. This is especially helpful for cloud-computing environments, where deployed nodes are charged by actual usage.
On Arcology, a node is no longer is a single machine but can be a group of computers with different functional modules deployed. Connected by high speed network, all the machines can work collaboratively to process transactions in full parallel.
Distributed computing is proven to be an effective, cost-efficient way to boost computation power. In fact, computer clusters represent more than 80% of all top 500 commercial systems. However, existing systems are designed for centralized systems. They lack many of the fundamental features necessary for blockchain networks.
A deterministic concurrency framework is responsible for managing shared computational resources in a node. On Arcology, a node is no longer a single machine, but a group of commodity computers with different functional modules deployed. Connected by a high-speed network, all machines work collaboratively to process transactions in full parallel. Developers can access these shared resources through a set of user-friendly APIs.
This gives Arcology unlimited scalability: Improving the overall throughput could be as simple as adding more machines to the servers.