Prueba Técnica Senior Enginner
Ejercicio Práctico
1. Contexto del Problema
ITEM-01 Tu equipo trabaja en un ecosistema de microservicios para una
billetera digital. en el cual se realizan movimientos de carga y resta
de saldo "procesamiento de transacciones".
2. Requerimientos
ITEM-02 Crear un microservicio que procese transacciones financieras.
ITEM-03 Input: Mensaje transacción.
Cada transacción tiene los siguientes campos:
- transaction_id
- user_id
- amount
- type (deposit o withdraw)
- timestamp
ITEM-04 Output: Registro de la transacción en una base de datos
PostgreSQL o similar (BD Relacional).
Incluir:
- ITEM-04-01 Validación de datos (e.g., que el amount sea positivo).
- ITEM-04-02 Simulación de operación de negocio (e.g., actualización del
balance de un usuario en base a la transacción).
- ITEM-04-03 Registro de logs para seguimiento de errores o
comportamientos sospechosos.
ITEM-05 Implementar:
- ITEM-05-01 API REST para guardar una transacción, consultar el historial
de transacciones por user_id, y consultar el saldo
actual por user_id.
- ITEM-05-02 Persistencia en PostgreSQL o similar usando tablas
normalizadas.
- ITEM-05-03 Configuración de despliegue en Docker preferiblemente para
Kubernetes (e.g., un Deployment y un Service).
ITEM-06 3. Extras (Opcional)
- ITEM-06-01 Un mecanismo básico de alerta para detectar intentos de
fraude (e.g., transacciones consecutivas de alto monto en un
corto tiempo).
- ITEM-06-02 Pruebas unitarias y de integración.
ITEM-07 Preguntas Conceptuales
- ITEM-07-01 ¿Cómo manejarías picos altos de transacciones para
garantizar escalabilidad?
- ITEM-07-02 ¿Qué estrategias usarías para prevenir fraudes en un sistema
de billetera digital?
- ITEM-07-03 Si detectas lentitud en el procesamiento de transacciones por
alta concurrencia, ¿cómo procederías para mejorar el
rendimiento?
Enviar url del proyecto en GitHub y las respuestas a las
preguntas conceptuales dejarlas en el readme.md
Entregables :
- Estructura de directorios