Back to all projectsSoftware Platform

Plugin-based, extensible ERP core

A multi-tenant ERP core with a real-time messaging backbone where new modules are built as separate plugins and shipped without touching the core system.

Platform ArchitectureRocketMQWebSocketPlugin System

Situation

A team delivering the same ERP core to customers across different industries was forced to touch the shared codebase for every new customer request. A customisation built for one customer could affect others, and every change required a full rebuild and re-test cycle. What was needed was an architecture where new capabilities could be added without breaking the core — and where different customers could run different plugin sets on the same foundation.

Solution

We designed a multi-tenant ERP core built on a plugin architecture:

  • Runtime plugin loader: A classpath-scanning system loads and unloads plugin JAR files without restarting the application; live control is available through HTTP admin endpoints
  • Asynchronous message queue (RocketMQ): Communication between the core and plugins runs over a message queue; a failing plugin cannot affect the core or other plugins
  • Real-time notifications (WebSocket + STOMP): When stock moves, a workflow step completes or a work-order status changes, the relevant users are notified instantly — no page refresh required
  • Vue 3 admin interface: A full-featured SPA where the status and live logs of each plugin are visible and operational actions can be performed
  • Report microservice: Heavy reports run in a dedicated microservice so they do not affect main application response times
  • Marketplace infrastructure: A marketplace module for packaging and distributing plugins lays the groundwork for a third-party developer ecosystem
  • Docker Compose development environment: PostgreSQL, RocketMQ and all application components spin up with a single command

Outcome

  • New features are developed as independent plugins and shipped without touching the core
  • A failing plugin or a slow-running report no longer affects core system response times
  • Different customers run different plugin combinations on the same core; customer customisations are isolated from the main codebase
  • The development team can respond to new customer requests in days rather than weeks
  • The marketplace structure positions the platform to open a plugin ecosystem to external developers

Let's talk about your project

Whether it's a greenfield ERP or modernizing an existing system, let's clarify the scope together in a first call.