> For the complete documentation index, see [llms.txt](https://docs.arcology.network/arcology-technical-whitepaper/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.arcology.network/arcology-technical-whitepaper/arcology-architecture.md).

# 4. Arcology Architecture

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.

![Arch](/files/lti1xhyY6BFwCYrbZaS2)

## 4.1. Microservice

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:

1. Easy integration
2. Loose coupling
3. Distributed computing
4. Flexibility

![Services](/files/JQMn6VliuFDQB15xqOOD)

### 4.1.1. Easy Integration

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.

### 4.1.2. Loose Coupling

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.

### 4.1.3. Flexibility

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.

## 4.2. Intra-node Horizontal Scaling

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.

![Distributed Computing](/files/JNiOQf5aPc0CreUhcRqU)

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.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.arcology.network/arcology-technical-whitepaper/arcology-architecture.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
