Blog de Amazon Web Services (AWS)

Cómo Pismo procesa 200 millones de eventos al día utilizando los servicios de AWS

Por Diego Valdez de Faria  y Felipe Brito

 

Pismo es una empresa tecnológica que proporciona una plataforma de procesamiento de servicios bancarios y de pago para bancos, mercados y fintechs, ayudando a las empresas y a sus clientes a liberarse de las limitaciones de la tecnología bancaria tradicional.La plataforma Pismo está construida sobre microservicios que se ejecutan de forma nativa en la nube de AWS. Permite a las entidades financieras lanzar productos escalables que siguen estándares de seguridad y disponibilidad.

La plataforma es accedida a través de APIs que reciben miles de millones de solicitudes mensuales. Cuando hay un cambio en el estado de una cuenta (un cambio en el saldo o límite, una transacción realizada o denegada, por ejemplo), se genera un evento de cambio (changefeed) y se envía a la plataforma de eventos.

La plataforma de eventos recopila datos de microservicios, analizándolos para evitar incumplimiento de contratos o el envío de información incorrecta. Almacena, filtra, enruta y entrega esta información, en pocos segundos, a cientos de puntos finales de eventos de clientes repartidos por diferentes regiones. Así, los clientes y socios de Pismo pueden integrar estos eventos con aplicaciones críticas, como aplicaciones móviles y antifraude. También pueden producir sus propios balances y realizar análisis de datos en tiempo real.

Desafios

Desde 2019 hasta finales de 2021, Pismo multiplicó por más de diez su volumen de transacciones. En 2022, el número de operaciones se duplicó con creces, con 35 millones de nuevas cuentas y 70 millones de tarjetas. La plataforma realizó transacciones por más de 200 mil millones de dólares en un año. La empresa también lanzó nuevos productos para el mercado financiero con un alto volumen de transacciones y comenzó a operar en nuevas regiones, como Europa, India y el Sudeste Asiático.

Este crecimiento, tanto en volumen de transacciones como en variedad de productos, impuso desafíos en la plataforma de procesamiento de eventos. En 2023, la plataforma pasó de 750 millones a 6 mil millones de eventos procesados ​​mensualmente. Al mismo tiempo, el despliegue en nuevas regiones requirió adaptaciones para cumplir con las regulaciones locales, cambios de seguridad y nuevas integraciones, además de nuevas características requeridas por los clientes.

Número de transacciones en la plataforma

 

Una plataforma de datos, destinada a servicios financieros, debe garantizar la integridad de los eventos y su disponibilidad. Innumerables procesos críticos llevados a cabo en instituciones bancarias dependen de estas integraciones de datos casi en tiempo real. Por lo tanto, la plataforma debe funcionar sin incumplimiento de contrato y ofrecer eventos con baja latencia.

«Durante 2021 y 2022, descubrimos que algunos de nuestros clientes estaban utilizando eventos en controles antifraude integrados en aplicaciones móviles. Requerían SLA de procesamiento de eventos (medidos desde la generación del evento hasta la entrega final) de menos de 5 segundos y con servicio de disponibilidad de 99,9% o más».

Además de la complejidad técnica de crear una plataforma disponible y segura, la volumetría trajo desafíos de costos y adaptabilidad a Pismo. En general, las plataformas con alto rendimiento de procesamiento requieren baja latencia y alta adaptabilidad para agregar nuevas funciones. Cumplir con estos requisitos normalmente implica altos costos de procesamiento en comparación con los procesos por lotes, que son el estándar en las instituciones bancarias, pero que no satisfacen las necesidades de Pismo.

Arquitectura

Para mantener la adaptabilidad de la plataforma de datos y su escalabilidad, todos los procesos y servicios se separaron en módulos. Para conectar cada módulo se utilizaron servicios de mensajería de AWS, como Amazon SNS, Amazon SQS y Amazon Kinesis. El procesamiento en cada conjunto de servicios se desarrolló siguiendo una arquitectura basada en eventos, utilizando el servicio de computo Serverless AWS Lambda como mecanismo principal para permitir la escalabilidad y personalización del proceso.

La plataforma de datos se comporta como un centro de eventos, ejecutando cuatro procesos (o flujos) principales:

  1. Recopilación y almacenamiento de eventos de más de 500 tipos diferentes de API en los distintos entornos y regiones donde Pismo presta sus servicios, respetando la legislación local de protección de datos. En muchos lugares, existen requisitos específicos de replicación, almacenamiento y control;
  2. Filtrar, agrupar por tenant y enrutar eventos para cada destinatario, con el fin de transmitir, a cada cliente y contexto, los eventos de acuerdo con las reglas que se aplicarán en los siguientes pasos del flujo de datos;
  3. Agrupación, enrutamiento de eventos (por tipo y subtipo) y verificación de reglas comerciales, contenido y estructura de cargas útiles (payload) para cada evento recopilado. Se verifica que los tipos de datos estén acorde con los contratos (esquemas de datos) que consume cada cliente. También se confirman el contenido, la sensibilidad de los datos y las estructuras obligatorias de cada tipo de datos. Esta parte del proceso es muy sensible para los clientes finales, ya que los procesos en tiempo real que consumen eventos pueden verse gravemente afectados en caso de no conformidad en los tipos de datos. Del mismo modo, es necesario comprobar el contenido y, en algunos casos, limpiarlo. Durante la limpieza, mediante Regex y Machine Learning, se eliminan los datos confidenciales que no cumplen con la legislación o las reglas de seguridad acordadas;
  4. Entrega y almacenamiento de metadatos de entrega (o fanout) por cliente, tipo, subtipo de evento y destino. La telemetría y los metadatos se recopilan para garantizar la entrega y la integridad del procesamiento de los eventos recopilados por la plataforma. En algunos casos, se realizan integraciones adicionales con socios.

Como se mencionó anteriormente, para garantizar un alto rendimiento y la integridad del procesamiento, la plataforma se desarrolló utilizando una arquitectura basada en eventos. Al utilizar AWS Lambda, fue posible brindar resiliencia al entorno y procesar cada evento por separado. Además, Pismo creó toda esta arquitectura utilizando infraestructura como código (IaC). Esta arquitectura y modelo de implementación le brindó a Pismo, además de escalabilidad, bajos costos operativos para implementar esta solución a nivel global.

Un desafío en una plataforma de esta arquitectura y tamaño es gestionar y optimizar costos. Esto fue posible aplicando etiquetas de costos a cada módulo desarrollado e implementado a través de IaC. En 2022 y principios de 2023 se identificaron los principales puntos que generaron altos costos en la plataforma. Entre las optimizaciones destacamos el cambio en el modo de persistencia y el lenguaje de programación utilizado en algunas funciones lambda.

Otro desafío fue aumentar los niveles de seguridad y modularidad. Esto se ha vuelto más fácil con el avance de las funciones de seguridad que ofrece AWS.

Consideraciones finales

En los últimos 18 meses, los costos de la plataforma se han reducido en un 90%. En el mismo período, la resiliencia entre regiones también se aplicó en el ambiente. Esto se implementó utilizando funciones de conectividad y replicación entre regiones presentes en los servicios de AWS utilizados.

Con costos bajo control, escalabilidad, seguridad y confiabilidad garantizadas, se están implementando nuevos productos creados con base en eventos, como análisis en tiempo real y servicios de Machine Learning. Se observó que los clientes financieros no sólo necesitaban eventos sin procesar para sus sistemas, sino también datos de eventos procesados, agrupados para su consumo.

Con base en este hallazgo, actualmente se están desarrollando productos que exponen datos para uso directo en herramientas de análisis y pueden consumirse a través de un Feature Store mediante API del sistema de recomendación, acelerando el uso de datos para enriquecer la experiencia del usuario final y para procesos automatizados por inteligencia artificial.

 

Este artículo fue traducido del Blog de AWS en Portugués.

 


Acerca de los autores

Diego Valdez de Faria es jefe del área de Datos y director de ingeniería de Pismo. Es ingeniero por la Poli-USP y tiene una maestría en economía por la UFSCar. Antes de Pismo, trabajó en empresas como Nubank, Wildlife Studios y Semantix, liderando equipos dedicados a aprendizaje automático, análisis, ingeniería de datos (big data y streaming) e infraestructura.

 

 

 

 

Felipe Brito es arquitecto de soluciones en AWS y orienta a los clientes en las mejores prácticas de arquitectura en la nube. Tiene experiencia en proyectos de desarrollo de software y análisis de datos.

 

 

 

 

Revisores

Rodrigo Prado es arquitecto de soluciones en AWS y trabaja con socios de software para crear productos utilizando las mejores prácticas de AWS.

 

 

 

 

Luiz Moreira es Technical Account Manager en AWS y ayuda a los clientes en su viaje a la nube. Tiene más de 18 años de experiencia en tecnología en las áreas de infraestructura, como computación, redes y almacenamiento, y durante los últimos 10 años se ha dedicado a especializarse en Seguridad.