Skip to main content
Welcome to the documentation of the first microservice of the project. My Portfolio’s Transactional Investment Engine! This project acts as a high-precision and performance-optimized RESTful API to simulate operational processes of Fintech platforms. It is designed to manage capital injection, portfolio queries, and atomic conversion of assets from Mexican Pesos (MXN) to digital dollars (USDC), ensuring data consistency under high-concurrency scenarios.

🚀 Features and Backend Architecture

ACID Concurrency

Strict implementation of transactional isolation at the persistence level through pessimistic locking, completely nullifying Race Conditions.

Precision Arithmetic

Absolute use of the BigDecimal class complemented by strict banking rounding policies (RoundingMode.HALF_UP), mitigating floating-point failures.

Perimeter Validation

Centralization and sanitization of Payloads through Jakarta Validation at the HTTP layer (@Valid), catching failures with a global interceptor (@ControllerAdvice).

Secure Infrastructure

Multi-stage packaging pipeline based on Alpine Linux (JRE), with native injection of JVM tuning flags and privilege isolation.

🛠️ Tech Stack

💻 Development Commands

The backend requires port 8080 to be available and the local database to operate on port 5433.

📡 API Documentation

All responses with business error codes or HTTP 400 validation return the standardized structure: {"error": "Failure detail"}.

💼 Accounts and Queries (/api/v1/portafolios)

💱 Financial Mutations (/api/v1/portafolios/{usuarioId})