The system is designed as a SaaS-style data migration platform where users can migrate data from a NoSQL database (MongoDB) to a SQL database (PostgreSQL).
The architecture follows a microservices approach and uses Kafka to handle large data migrations reliably.
The system is designed so that:
User (MongoDB)
│
│1.Read-onlyAccess
▼
┌──────────────────┐
│Schema Discovery │
│ Service │
└────────┬─────────┘
│
│2.Schema Model
▼
┌──────────────────┐
│ Migration │
│ Orchestrator │
│ (Spring Boot) │
└────────┬─────────┘
│
│3. Migration Tasks (BatchInfo)
▼
┌──────────────────┐
│ Kafka Topics │
│ (Migration Pipe) │
└────────┬─────────┘
│
│4. Consume Tasks
▼
┌──────────────────┐
│ Migration Worker │
│ Service │
└────────┬─────────┘
│
│5. TransformedRows
▼
┌──────────────────┐
│ PostgreSQL │
│ (User Target DB) │
└────────┬─────────┘
│
│6. Validation Checks
▼
┌──────────────────┐
│ Validation │
│ Engine │
└────────┬─────────┘
│
│7. Status & Report
▼
┌──────────────────┐
│ Frontend (React) │
└──────────────────┘
The frontend is responsible only for user interaction.
Responsibilities: