This document outlines best practices and guidelines to be considered and implemented when integrating an existing system with Aries Cloudagent.
Architecture
Generally speaking, a web application that leverages Aries agents is structured as follows:
Agent: this service is used by the web application to interact with a Ledger and other agents connected to the same ledger. It is generally not controlled directly by the web application frontend, instead requests to the agent come from a controller service.
Controller: this service provides the business logic for the web application, and acts as bridge between the frontend and the agent. The controller usually exposes appropriate APIs that the frontend will use to perform common business tasks as well as agent-related tasks such as requesting the creation of a new connection, etc. The controller is also tasked with tracking and managing all of the information that is required for the business processes to be implemented and work successfully.
Frontend: this service is what the users see and interact with, commonly something that is displayed in a web browser.
The above components may be at times partially consolidated or further split into separate services, the purpose of this overview is to explain the separation of concerns of these three macro-areas.