CoreIntegrator is a lightweight, production-inspired backend integration service that synchronizes customer data between an ERP system and a CRM endpoint.
It demonstrates real-world enterprise integration patterns including incremental synchronization, retry handling, batch processing, transaction safety, logging, health monitoring, and containerized deployment.
ERP (MySQL Container)
↓
Integration Middleware (Node.js)
↓
CRM Endpoint (Simulated)
↓
Audit Logs (sync_logs table)
- ERP Database → MySQL container storing customer records
- Sync Engine → Node.js service handling transformation & retries
- CRM Endpoint → Simulated target system
- Logging System → Tracks success/failure for traceability
- Incremental sync (only unsynced records processed)
- Batch processing
- Retry mechanism (max 3 attempts)
- Transaction-safe database operations
- Structured logging for audit
- Health check endpoint
- Cron-based automatic scheduler
- Fully Dockerized stack
- One-command deployment
- Docker installed
- Docker Compose enabled
curl -O https://raw.githubusercontent.com/CLOVEOS/CoreIntegrator/main/docker-compose.yml
docker compose up -dVerify:
docker psExpected containers:
erp-mysqlmagic-integration
curl http://localhost:3000/healthExpected response:
{"status":"UP"}Enter MySQL container:
docker exec -it erp-mysql mysql -u root -prootInside MySQL:
USE erp_db;
INSERT INTO erp_customers (cust_id, cust_name, phone_no)
VALUES (3, 'Rohit', '9998887776');
SELECT * FROM erp_customers;
exit;This simulates a new ERP customer entry.
curl -X POST http://localhost:3000/syncWhat happens internally:
- Fetch unsynced ERP records
- Transform into CRM format
- Apply retry logic
- Log result
- Mark record as synced
curl http://localhost:3000/logsShows:
- SUCCESS / FAILED status
- Payload
- Timestamp
The service runs automatic sync every minute.
View logs:
docker compose logsYou will see:
Auto-sync triggered
To completely reset everything and redeploy:
docker compose down -v 2>/dev/null && \
docker rm -f magic-integration erp-mysql 2>/dev/null && \
docker volume prune -f && \
rm -f docker-compose.yml && \
curl -O https://raw.githubusercontent.com/CLOVEOS/CoreIntegrator/main/docker-compose.yml && \
docker compose up -d --buildThis will:
- Remove containers
- Remove database volume
- Pull latest compose file
- Start clean system