Before starting with the Anchor Platform, let's get familiar with the overall architecture. This section will describe the components involved and how they interact.
The client is an application, such as a wallet or remittance sender, that acts on behalf of a user and makes requests to the system. Clients make requests to the SEP server component of the Anchor Platform using sets of standards called SEPs (Stellar Ecosystem Proposals).
The SEP server is a client-facing server and therefore needs to be accessible from an external network. The SEP server processes user requests and manages the state of transactions they initiate. When the SEP server needs to provide information it doesn't have to the client, such as the exchange rate for an asset pair, it makes synchronous callback requests to the Business Server.
Some SEP requests are designed for a client to fetch business-related data, such as quotes or fees. Because it's business-driven, the SEP server will create a request to your server, passing information back to the client. It will also transform the response into a SEP-compliant format. Note that your server only needs to implement endpoints required by the particular SEP you would like to support.
The SEP server will never store any sensitive information, such as KYC (PII), in the database.
The Anchor Platform uses a PostgreSQL database to store Stellar events and entities. Its primary use is to store SEP (24 & 31) transactions.
The platform server is an internal component. It should be hosted in a private network and should not be accessible from the Internet. This server enables the business to fetch and update the state of transactions using its API.
This component is optional and may be replaced by your own implementation.
The Stellar observer monitors the Stellar blockchain, automatically detects user payments sent to the business, and updates corresponding SEP transaction statuses.
Finally, the business server is a server that you (the business) must implement to fully support most of the SEPs offered by the Anchor Platform. The business server responds to callback requests sent by the Anchor Platform (such as requesting a quote for SEP-38) and provides updates to the Anchor Platform when off-chain events occur (like completing a bank transfer).
This diagram is only meant to show the planned architecture. Changes in future versions may be different from the diagrams provided.
The event service is a new component that will push events to both the client and business via HTTP webhooks.
The custody server is a new component that allows businesses to connect to a custodial service (such as Fireblocks) to send and receive payments on the Stellar network. When used in self-custodial mode, this service is a next generation of the existing Stellar Observer.