Если бы вы рассматриваете C# и .NET то там есть "расширяемость" и "модульность" из коробки. Называется Managed Extensibility Framework (MEF).
Например мы его используем для сервиса опроса оборудования, когда возникает новое устройство, пишется отдельная сборка реализующая интерфейс
interface IDeviceControllerPlugin : IControllerPlugin
и вызывающая событие
event EventHandler<DataPacketEventArgs> OnDataPacket;
которое уже обрабатывается в самом сервисе.
Добавление нового модуля осуществляется путем бросания его в папку с программой и перезапуском. И повторюсь - все это доступно как часть .NET