Arquitectura
Arquitectura
Antes de comenzar con la Anchor Platform, familiaricémonos con la arquitectura. Esta sección describirá los componentes involucrados y cómo interactúan.
Arquitectura Fundamental
Los siguientes componentes arquitectónicos son necesarios para todas las implementaciones de la Anchor Platform.

Cliente
El cliente es una aplicación, como un monedero o remitente de transferencias, que actúa en nombre de un usuario y realiza solicitudes al sistema. Los clientes hacen solicitudes al componente servidor SEP de la Anchor Platform usando conjuntos de estándares llamados SEPs (Stellar Ecosystem Proposals).
Servidor SEP
El servidor SEP es un servidor orientado al cliente y debe ser accesible desde una red externa. El servidor SEP procesa las solicitudes de los usuarios y gestiona el estado de las transacciones que inician. Cuando el servidor SEP necesita proporcionar información que no tiene al cliente, como la tasa de cambio para un par de activos o el estado KYC de un cliente, realiza solicitudes síncronas de callback al servidor de negocio y devuelve la información en un formato compatible con SEP.
El servidor SEP nunca almacenará información sensible, como KYC (PII), en la base de datos.
Servidor de Negocio
El servidor de negocio es un servicio que tú (el negocio) debes implementar para conectar la Anchor Platform con tus sistemas internos. El servidor de negocio responde a solicitudes de callback enviadas por el servidor SEP, como solicitudes de cotización, recibe eventos enviados por el servicio de eventos, como notificaciones de pagos recibidos en tu cuenta Stellar, y proporciona actualizaciones al servidor de plataforma cuando ocurren eventos fuera de cadena, como la iniciación de una transferencia bancaria a un cliente.
Servidor de Plataforma
El servidor de plataforma es un componente interno. Debe estar alojado en una red privada y no debe ser accesible desde Internet. Este servidor permite al negocio obtener y actualizar el estado de las transacciones usando su API.
Base de Datos
La Anchor Platform utiliza una base de datos PostgreSQL para almacenar eventos y entidades Stellar. Se usa principalmente para almacenar transacciones.
Kafka
Kafka se utiliza como eje de mensajería para la Anchor Platform, facilitando la comunicación y las interacciones basadas en eventos entre diferentes componentes. Permite que componentes como el servidor SEP, el servidor de negocio y el servicio de eventos publiquen y se suscriban a eventos de transacciones y pagos de manera confiable y escalable.
Arquitectura Completa
Además de los componentes descritos arriba, la Anchor Platform incluye varios otros componentes que ofrecen funcionalidad adicional. Tu negocio puede elegir cuáles de los componentes adicionales usar, pero el diagrama a continuación visualiza la arquitectura del sistema si se utilizan todos los componentes.
Servicio de Eventos
El servicio de eventos permite que la Anchor Platform envíe webhooks HTTP a clientes registrados y a tu servidor de negocio cuando cambia el estado de las transacciones, eliminando la necesidad de que los clientes y/o tu servidor de negocio consulten continuamente las APIs de Anchor Platform. Funciona leyendo eventos publicados en un tópico de Kafka por otros componentes de Anchor Platform. Lee más sobre el uso del servicio de eventos.
Observador de Pagos
El Observador de Pagos monitorea la cadena de bloques Stellar usando Stellar RPC o Horizon, detecta automáticamente pagos relacionados con el negocio y actualiza las transacciones correspondientes en la base de datos de Anchor Platform. Si también usas el servicio de events, los pagos a tus cuentas activarán un callback HTTP hacia tu servidor de negocio.
Si ya tienes una solución para monitorear pagos a tus cuentas Stellar, como una integración con tu exchange, Horizon o RPC, entonces este componente no es necesario, aunque tu servidor de negocio deberá notificar a Anchor Platform cuando se haya realizado un pago asociado a una transacción de Anchor Platform a una de tus cuentas Stellar vía la Platform API.
