Personal Project

Wallet Application

Spring BootSpring CloudKafkaRedisSQL ServerDockerKubernetesMapStructJWT

A microservices-based wallet application enabling users to link accounts, track spending, set limits, and generate financial reports.

A Wallet Application designed to provide users with the ability to link their accounts, track their spending, and gain valuable insights into their finances. The application empowers users to set spending limits, generate detailed financial reports, and manage multiple accounts seamlessly in one place.

Built following a microservices architecture to ensure scalability, maintainability, and flexibility, the system consists of three core services: User Service for authentication and profile management, Wallet Service for balance tracking and transaction handling, and Report Service for financial insights and reporting.

The architecture leverages Eureka Server for service discovery and registration, with Feign Clients enabling seamless communication between microservices. An API Gateway manages request routing to the appropriate services. Fault tolerance is ensured through Resilience4j circuit breakers, while Redisson provides distributed caching for frequently accessed data. Kafka handles asynchronous messaging between services, ensuring scalability and eventual consistency.

Security is implemented through JWT-based authentication to secure APIs and ensure only authorized users can access their data. The application is containerized using Docker and orchestrated with Kubernetes (Minikube) for local development deployment.

My contribution

Designed and implemented a complete microservices architecture with service discovery, inter-service communication, circuit breakers, distributed caching, and message-based communication for a scalable financial application.

← Back to projects