Serenity

Serenity

Serenity is a personal finance manager built with a microservices architecture using Spring Boot (Java) and Apache Kafka. The platform features a dedicated Plaid Service for secure bank account synchronization and a separate Transaction Processor Service for event-driven transaction processing. This decoupled architecture ensures better scalability and fault tolerance while maintaining real-time data synchronization.

Spring Boot
Java
Apache Kafka
Microservices
Plaid
Event-driven
Docker
EC2
Supabase
PostgreSQL
Prometheus
Grafana

Challenges

The main challenges included designing a scalable microservices architecture that could handle high-volume transaction processing while maintaining data consistency. Ensuring reliable communication between services and implementing proper error handling across the distributed system required careful orchestration.

Solution

I architected a microservices-based solution using Spring Boot (Java) and Apache Kafka to decouple Plaid data ingestion from transaction processing. Created a dedicated Plaid Service to handle bank synchronization and publish events to Kafka topics, while building an independent Transaction Processor Service to consume events, perform enrichment, and persist data to Supabase Postgres. The entire system is containerized with Docker Compose and deployed on EC2 for reliable production-grade orchestration.

Key Features

Microservices architecture with Spring Boot (Java) and Apache Kafka
Dedicated Plaid Service for secure bank account synchronization
Independent Transaction Processor Service for event-driven processing
Event-driven data flow with Kafka topics for decoupled communication
Transaction enrichment and categorization with automated processing
Centralized monitoring with Prometheus and Grafana across services

Project Gallery

Serenity screenshot 1
Serenity screenshot 2
Serenity screenshot 3

Interested in working together?

I'm always open to discussing new projects and opportunities.

Get in Touch