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