События Golang: EventEmitter / диспетчер для архитектуры плагинов

В Node.js я смог довольно легко сделать клон WordPress, используя EventEmitter для репликации и встраивания системы перехватчиков в ядро ​​CMS, к которому затем могли подключаться плагины.

Теперь мне нужен тот же уровень расширяемости и изоляции ядра для моей CMS, написанной и портированной на Go. По сути, у меня сейчас закончено ядро, но для того, чтобы сделать его по-настоящему гибким, я должен иметь возможность вставлять события (хуки) и подключать плагины к этим хукам с дополнительной функциональностью.

Меня не волнует перекомпиляция (динамическое / статическое связывание), если вам не нужно изменять ядро ​​для загрузки плагинов - ядро ​​CMS никогда не должно изменяться. (например, WP, Drupal и т. д.)

Я заметил, что есть несколько довольно неизвестных проектов, пытающихся реализовать события в Go, похожие на EventEmitter в Node.js:

https://github.com/CHH/eventemitter

https://github.com/chuckpreslar/emission

Поскольку эти два проекта выше не приобрели особой популярности и внимания, я чувствую, что теперь мы можем думать о событиях так, как мы должны это делать в Go? Означает ли это, что Go, возможно, не предназначен для этой задачи? Чтобы сделать действительно расширяемые приложения с помощью плагинов?

Не похоже, что в Go встроены события, встроенные в его ядро, и RPC не выглядит как правильное решение для интеграции плагинов в ваше основное приложение, как если бы они были встроены изначально и как если бы они были частью основного приложения.

Каков наилучший способ бесшовной интеграции плагинов в ваше основное приложение, для неограниченных точек расширения (в ядре) без манипулирования ядром каждый раз, когда вам нужно подключить новый плагин?

Ответы на вопрос(1)

Ваш ответ на вопрос