ESCO API

ESCOAPI

ESCO API es una suite de herramientas que permiten el acceso de sistemas externos a nuestros productos CORE, tanto VisualBolsa como VisualFondos.

Esta suite está conformada por diversos servicios, los cuales dependeran del producto CORE al cual hagan referencia y las funcionalidades que se quieran utilizar.

En la seccion Versiones se puede verificar las versiones compatibles de las aplicaciones CORE con las versiones de ESCOAPI:

Componentes de ESCOAPI

A continuación se detallan los componentes que integran la solución ESCOAPI para ambas aplicaciones Core.

Componentes comunes

Los nombres e los componentes mencionados a continuacion hacen referencia a los nombres de las imagenes que se descargan del repositorio de DockerHub del Grupo MTR:

 

redis: Se utiliza como un storage de caché, es el encargado de controlar las sesiones activas, permitiendo la escalabilidad horizontal de otros componentes.

esco-api: Es el punto de entrada de toda la suite. Técnicamente hablando es una api gateway. Desde cualquier sistema externo siempre se deberá acceder por este punto.

dispatcher-go: Este es un servicio que entre otras funcionalidades, da mantenimiento al caché y ejecuta tareas asincronas. Es un coordinador de diferentes procesos.

elasticSearch: Es un gestor de BD usado para guardar logs usando el estándar ELK. Esto es opcional, solo se tiene que activar si y sólo si se quiere activar el log por ELK, en caso contrario no es necesario su uso.

kibana: Es un visor de logs. Esto es opcional, solo se tiene que activar si y sólo si se quiere activar el log por ELK, en caso contrario no es necesario su uso.

rabbit: Es un gestor de colas de eventos MQ utilizado para eventos internos.

Componentes ESCOAPI VisualBolsa

Arquitectura ESCO API

vb_admin: Es la api encargada de comunicarse con el repositorio de usuarios. Sus funciones básicas son 2 :

  • Validación de credenciales.
  • Obtener las cuentas comitentes vinculadas con el usuario de la API.

vb_sl: Api interna encargada de interactuar con la Base de Datos de VisualBolsa, dedicada a resolver consultas y reportes.

vb_oms: Api interna encargada de realizar el ingreso en la Base de Datos de VisualBolsa de los distintos movimientos, como ser :

  • Ingreso de ordenes (y control pre-trade)
  • Cash in y Cash out
  • Ingreso de solicitudes de fondos (suscripciones y rescates)
  • Alta de cuentas comitentes
  • Ingreso de Movimientos manuales (Titulos y Monedas)

vb_market-data: Servicio encargado de recibir precios OnLine de Instrumentos desde ByMA e impactarlos en la Base de Datos de VisualBolsa.

vb_ors: Servicio encargado de recibir los cambios de estado de las ordenes ruteadas a ByMA, e impactar en la Base de Datos de VisualBolsa los mismos.

Traductor FIX: Servicio encargado de interactuar con BYMA mediante el protocolo FIX. Mediante este servicio se realizan las siguientes funciones :

  • Recibir market data OnLine
  • Rutear ordenes al mercado
  • Recibir cambios de estado en las ordenes.

Ver Requerimientos del Traductor FIX

Componentes ESCOAPI VisualFondos

La arquitectura de ESCOAPI para Fondos utiliza menos componentes que la de implementacion de Bolsa.

Arquitectura ESCO API

Requerimientos de Hardware y Software

Los componentes de ESCO API (APIS, servicios) corren sobre docker que a la vez corre sobre Linux.

Los requerimientos detallados en este documento corresponden sólo a la instalación de ESCOAPI. No se detallan en este documento requerimientos del traductor FIX.

Ambiente de Test

Hardware mínimo requerido
CPU 4 núcleos
RAM Mímino 8Gb de memoria RAM.
Disco 200Gb
Software mínimo requerido
Cualquier distribucion estable de Linux server. Puede ser con o sin interfaz visual.
Docker engine
Docker compose

Ambiente de producción

Para un ambiente productivo la implementacion puede realizarse en un unico servidor como en un ambiente de test, o puede implementarse en dos servidores.
En caso de utilizar 2 servidores, en el servidor que se encuentre en la DMZ se instala el componente esco-api (gateway), y el resto en el servidor LAN.

Server DMZ

Hardware mínimo requerido
CPU 4 núcleos
RAM Mímino 8Gb de memoria RAM.
Disco 50Gb
Software mínimo requerido
Cualquier distribucion estable de Linux server. Puede ser con o sin interfaz visual.
Docker engine
Docker compose

Server LAN

Hardware mínimo requerido
CPU 4 núcleos
RAM Mímino 8Gb de memoria RAM.
Disco 200Gb
Software mínimo requerido
Cualquier distribucion estable de Linux server. Puede ser con o sin interfaz visual.
Docker engine
Docker compose

En ambientes Linux tenemos la capacidad de hacer deploys de contenedores de cualquier nube existente (AWS, AMAZON, GoogleCloud).
Para hacer deploys en estos ambientes se puede usar Kubernets, ECS o AKS.

FAQs

ESCOAPI se puede escalar de forma vertical como horizontal. Siempre teniendo en cuenta que todas las instancias apuntan a una sola DB.
ESCOAPI puede orquestarse usando cualquier orquestador del mercado (Kubernetes, docker-compose, etc)

Aparte de servidores on premises donde se puede hacer deploy de la solución:

  • OpenShift
    • Con imágenes oficiales de redhat.
    • Corriendo sin ser root dentro de los contenedores
  • EC2 AWS.