A cloud-native Spring Boot Microservices project that provides an AI-powered collaborative workspace platform. The application is built using modern distributed system principles with Spring Cloud, Kafka, Redis, PostgreSQL, MinIO, and Kubernetes to ensure scalability, reliability, and maintainability.
Distributed Lovable is a microservices-based application designed to provide a secure and scalable workspace management platform. The system enables users to create and manage workspaces, upload files, leverage AI-powered features, and communicate seamlessly between services using event-driven architecture.
The project follows industry-standard microservices practices including:
- Service Discovery
- API Gateway
- Centralized Configuration
- JWT Authentication
- Event-Driven Communication
- Distributed Caching
- Object Storage
- Containerized Deployment
Client
│
▼
API Gateway
│
┌───────────────┬───────────────┬───────────────┐
▼ ▼ ▼
Account Service Workspace Service Intelligence Service
│ │ │
└───────────────┼───────────────┘
▼
PostgreSQL Databases
▲
│
Eureka Discovery Server
▲
│
Config Server
Redis ← Caching
Kafka ← Event Streaming
MinIO ← Object Storage
Kubernetes ← Deployment
- User Registration & Authentication
- JWT-based Authorization
- Workspace Management
- AI-powered Workspace Assistance
- File Upload & Storage
- Event-Driven Architecture with Kafka
- Redis Caching
- Service Discovery using Eureka
- API Gateway Routing
- Centralized Configuration
- Kubernetes Deployment
- Docker Image Generation using Jib
- Java 21+
- Spring Boot
- Spring Security
- Spring Data JPA
- Spring Cloud
- Spring Cloud Gateway
- Eureka Discovery Server
- Spring Cloud Config
- PostgreSQL
- Redis
- Apache Kafka
- Spring AI
- OpenAI API
- MinIO (S3 Compatible)
- Docker
- Kubernetes
- Google Jib
- OpenFeign
- MapStruct
- Bean Validation
- Lombok
- Maven
distributed-lovable/
│
├── account-service/
├── workspace-service/
├── intelligence-service/
├── gateway-service/
├── discovery-service/
├── config-service/
├── common/
├── kubernetes/
├── docker/
└── pom.xml
Acts as the service registry where every microservice registers itself.
Responsibilities
- Service Registration
- Service Discovery
- Dynamic Load Balancing
Provides centralized configuration for all services.
Responsibilities
- Externalized Configuration
- Environment-specific Properties
- Configuration Management
Single entry point for all client requests.
Responsibilities
- Routing
- Authentication
- Authorization
- JWT Validation
- Request Filtering
- Load Balancing
Manages user-related operations.
- User Registration
- Login
- Authentication
- Authorization
- User Profile Management
- JWT Token Generation
Handles workspace management.
- Create Workspace
- Update Workspace
- Delete Workspace
- File Management
- Redis Caching
- Kafka Event Publishing
Provides AI-powered functionalities.
- AI Chat
- Code Assistance
- Content Generation
- Smart Suggestions
- Workspace Intelligence
Contains reusable components shared across all services.
Examples include:
- DTOs
- Exception Handling
- Security Utilities
- JWT Utilities
- Common Response Classes
- Shared Models
Authentication is implemented using:
- Spring Security
- JWT (JSON Web Token)
User Login
│
▼
Account Service
│
▼
Generate JWT
│
▼
Client Stores Token
│
▼
API Gateway Validates Token
│
▼
Protected Services
Apache Kafka is used for asynchronous communication.
Example:
Workspace Created
│
▼
Kafka Event
│
▼
Intelligence Service
│
▼
AI Processing
│
▼
Save Result
Redis is used to improve application performance.
Benefits:
- Faster Response Time
- Reduced Database Load
- Frequently Accessed Data
- Session Management
MinIO provides object storage for:
- Images
- Documents
- PDFs
- Project Files
- Workspace Assets
The application is deployment-ready using Kubernetes.
Deployment includes:
- Deployments
- Services
- ConfigMaps
- Secrets
- Ingress
- Autoscaling Support
Client
│
▼
API Gateway
│
▼
JWT Authentication
│
▼
Workspace Service
│
├── PostgreSQL
├── Redis
├── MinIO
└── Kafka Event
│
▼
Intelligence Service
│
▼
OpenAI API
- Java 21+
- Maven
- PostgreSQL
- Redis
- Apache Kafka
- MinIO
- Docker
- Kubernetes (Optional)
mvn clean installStart services in the following order:
- Config Service
- Discovery Service
- API Gateway
- Account Service
- Workspace Service
- Intelligence Service
| Technology | Purpose |
|---|---|
| Spring Boot | Backend Framework |
| Spring Cloud | Microservices |
| Eureka | Service Discovery |
| Gateway | API Gateway |
| PostgreSQL | Database |
| Redis | Cache |
| Kafka | Messaging |
| OpenFeign | Service Communication |
| Spring Security | Authentication |
| JWT | Authorization |
| MinIO | File Storage |
| Kubernetes | Container Orchestration |
| Docker | Containerization |
| Jib | Docker Image Build |
| OpenAI | AI Integration |
- CI/CD Pipeline
- Monitoring with Prometheus & Grafana
- Distributed Tracing with Zipkin
- ELK Stack Logging
- WebSocket Notifications
- Role-Based Access Control (RBAC)
- Multi-Tenant Support
- AI Workflow Automation
Vishnu
Java Backend Developer | Spring Boot | Microservices | DevOps Enthusiast
- LinkedIn: https://linkedin.com/in/your-profile
This project is licensed under the MIT License.
If you found this project useful, consider giving it a ⭐ on GitHub. It helps others discover the project and motivates future improvements!