Tüm projelere dönYazılım Platformu

Eklenti tabanlı, genişletilebilir ERP altyapısı

Yeni modüllerin ayrı bir eklenti olarak geliştirilip çekirdek sisteme dokunmadan devreye alınabildiği, gerçek zamanlı mesajlaşma altyapılı çok kiracılı ERP çekirdeği.

Platform MimarisiRocketMQWebSocketEklenti Sistemi

Durum

Farklı sektörlerdeki müşterilere aynı ERP çekirdeğini sunan ekip, her yeni müşteri talebinde ortak kod tabanına doğrudan müdahale etmek zorunda kalıyordu. Bir müşteri için yapılan özelleştirme diğerini etkiliyor, her değişiklik tüm sistemi yeniden derlemeyi ve test etmeyi gerektiriyordu. İhtiyaç, çekirdeği bozmadan yeni yetenekler ekleyebilecekleri — ve farklı müşterilerin farklı eklenti setleriyle çalışabileceği — bir mimariydi.

Çözüm

Eklenti (plugin) mimarisi üzerine kurulu çok kiracılı bir ERP çekirdeği tasarladık:

  • Çalışma zamanı eklenti yükleyici: Classpath tarama tabanlı sistem, yeni eklenti JAR dosyasını uygulama yeniden başlatılmadan yükleyip kaldırabilir; HTTP admin endpoint'leri üzerinden canlı kontrol sağlanır
  • Asenkron mesaj kuyruğu (RocketMQ): Çekirdek ve eklentiler arasındaki iletişim mesaj kuyruğu üzerinden yürütülür; bir eklentinin başarısız olması çekirdeği veya diğer eklentileri etkilemez
  • Gerçek zamanlı bildirimler (WebSocket + STOMP): Stok hareketi, iş akışı adımı veya iş emri durumu değiştiğinde ilgili kullanıcılara anında bildirim gönderilir; sayfanın yenilenmesi gerekmez
  • Vue 3 yönetim arayüzü: Eklentilerin listesi, durumu ve canlı log'ları izlenebilen, yönetim işlemlerinin gerçekleştirilebildiği tam özellikli SPA arayüzü
  • Raporlama mikroservisi: Ağır raporlar ayrı bir mikroserviste çalıştırılır; ana uygulamanın yanıt süresini etkilemez
  • Marketplace altyapısı: Eklentilerin paketlenip dağıtılabileceği marketplace modülü ile üçüncü taraf geliştirici ekosistemine zemin hazırlandı
  • Docker Compose ile geliştirme ortamı: PostgreSQL, RocketMQ ve uygulama bileşenlerinin tamamı tek komutla ayağa kalkıyor

Sonuç

  • Yeni özellikler artık ayrı eklentiler olarak geliştirilip çekirdeğe dokunmadan devreye alınabiliyor
  • Bir eklentideki hata veya yavaş rapor, çekirdek sistemin yanıt süresini etkilemiyor
  • Farklı müşteriler farklı eklenti kombinasyonlarıyla aynı çekirdek üzerinde çalışıyor; müşteri özelleştirmeleri ana kod tabanından izole
  • Geliştirme ekibi yeni müşteri taleplerine haftalar yerine günler içinde yanıt verebiliyor
  • Sistem, marketplace yapısıyla dış geliştiricilere eklenti ekosistemi açılabilecek şekilde tasarlandı

Projenizi konuşalım

İster sıfırdan bir ERP, ister mevcut sisteminizin modernizasyonu olsun, ilk görüşmede kapsamı birlikte netleştirelim.