MicroBankingServices is a cutting-edge project designed to transform banking operations through a microservices architecture. The project encompasses the following microservices:
- Manages all aspects related to the bank's clients.
- Enables the creation, retrieval, and modification of customer information.
- Manages bank accounts with comprehensive details, including the account identifier, creation date, type (CURRENT_ACCOUNT or SAVING_ACCOUNT), and status (CREATED, ACTIVATED, SUSPENDED, BLOCKED).
- Supports advanced operations such as:
- 💵 Debiting an account with a specified amount
- 💳 Crediting an account with a specified amount
↔️ Transferring an amount from one account to another
- Maintains a detailed transaction history for each account operation. Each transaction record includes a unique number, date, amount, description, and type (DEBIT or CREDIT).
- Implements a Discovery Service using Eureka Server.
- Facilitates dynamic service registration and discovery within the microservices ecosystem.
- Establishes a Gateway Service using Spring Cloud Gateway.
- Manages the routing of requests to the respective microservices based on their specific paths.
- Develops a centralized Configuration Service.
- Enables dynamic configuration management for all microservices, ensuring flexibility and scalability.
- Integrates OAuth2 OIDC (OpenID Connect) for authentication and authorization.
- Utilizes Keycloak as the identity provider for secure access control.
- Implements token-based authentication to protect sensitive operations and resources.
MicroBankingServices leverages the power of microservices to create a distributed, scalable, and efficient banking system. With Eureka Server for service discovery, Spring Cloud Gateway for efficient routing, and a centralized Configuration Service, the project aims to provide a seamless and dynamic banking experience.