Microkernel (Plugin)

Núcleo mínimo que ofrece servicios base, extendido por plugins.

Contexto

Productos extensibles por terceros: IDEs (VS Code), navegadores, ERPs, CMSs.

Solución

Un núcleo expone APIs estables. Cada feature opcional es un plugin descubierto en runtime.

public interface IPlugin { string Name { get; } void Register(IServiceCollection s); }

// El núcleo descubre plugins:
foreach (var plugin in DiscoverFromFolder("./plugins"))
    plugin.Register(services);
Tradeoffs
Pro Contra
Extensible sin tocar el núcleo Diseñar APIs estables es difícil
Personalización por cliente Compatibilidad entre versiones de plugins

#architecture #plugins