NexusPay is a high-performance, event-driven digital wallet ecosystem designed for scalable financial transactions. It leverages Apache Kafka for asynchronous inter-service communication and is fully orchestrated using Kubernetes (K8s) to ensure high availability and fault tolerance.
(Note: Access requires Port-Forwarding the Gateway Service within your K8s cluster)
- Real-Time Transaction Processing: Instant balance updates and transaction logging triggered by system events.
- Event-Driven Architecture: Asynchronous communication between services using Kafka Topics (
user-created-topic,wallet-transactions). - High-Speed Caching: Optimized transaction history retrieval using Redis with
RedisSerializer.json()for efficient data handling. - Transaction History: Detailed logs for DEPOSIT and WITHDRAW operations with unique transaction IDs.
- Kubernetes Orchestration: Fully containerized services managed via K8s Deployments and Services for seamless scaling.
- Kafka Listener Optimization: Resolved complex
PLAINTEXT_INTERNALprotocol mappings to ensure stable broker-client connectivity. - Database Reliability: Robust PostgreSQL integration with Spring Data JPA, featuring secure credential management and dialect optimization.
- API Gateway: Centralized routing and request filtering through Spring Cloud Gateway.
- JWT Authentication: Secure user sessions managed by the Auth Service.
- Modern Serialization: Custom
RedisTemplateconfiguration usingStringRedisSerializerfor keys and JSON serializers for values. - Resilience: Automatic pod recovery and "CrashLoopBackOff" troubleshooting strategies implemented for high uptime.
- Language: Java 17
- Framework: Spring Boot 3.x
- Messaging: Apache Kafka (Distributed Event Streaming)
- Caching: Redis (Data Persistence & Speed)
- Database: PostgreSQL (Relational Data)
- Build Tool: Maven
- Containerization: Docker & Docker Compose
- Orchestration: Kubernetes (K8s)
- Networking: Spring Cloud Gateway
- API Testing: Postman
- Docker Desktop (K8s Enabled)
- Java JDK 17+
- Maven
- Kubectl
- Start Infrastructure: Run
docker-compose up -dand verify Kafka is running. - Build and Push:
mvn clean package -DskipTests
docker build -t your-username/wallet-service:latest ./wallet-service
docker push your-username/wallet-service:latestgit clone https://github.com/yigitkagankartal/Realtime-chat.git