|
|
@@ -0,0 +1,35 @@
|
|
|
+# IKernelBus
|
|
|
+
|
|
|
+Шина ядра.
|
|
|
+
|
|
|
+Может иметь несколько реализаций. Из фреймворка предлагается две реализации :
|
|
|
+
|
|
|
+* локальная
|
|
|
+* поверх HTTP
|
|
|
+
|
|
|
+## Интерфейс
|
|
|
+
|
|
|
+```go
|
|
|
+// IKernelBus -- шина сообщений ядра
|
|
|
+//
|
|
|
+// Публикация и запрос требуют параметров на _передачу_.
|
|
|
+// Подписка и обслуживание входящих запросов требует _обработчиков_.
|
|
|
+type IKernelBus interface {
|
|
|
+ // Publish -- публикует сообщение в шину
|
|
|
+ Publish(topic ATopic, binMsg []byte) Result[bool]
|
|
|
+ // SendRequest -- выполняет запрос по указанному топику
|
|
|
+ SendRequest(topic ATopic, binReq []byte) Result[[]byte]
|
|
|
+
|
|
|
+ // Subscribe -- подписывает обработчик на топик
|
|
|
+ Subscribe(IBusHandlerSubscribe) Result[bool]
|
|
|
+ // Unsubscribe -- отписывается от топика
|
|
|
+ Unsubscribe(IBusHandlerSubscribe)
|
|
|
+ // RegisterServe -- Регистрирует обработчик на обслуживание входящих запросов
|
|
|
+ RegisterServe(IBusHandlerServe)
|
|
|
+
|
|
|
+ // IsWork -- возвращает признак работы шины
|
|
|
+ IsWork() bool
|
|
|
+ // Log -- возвращает буферный лог
|
|
|
+ Log() ILogBuf
|
|
|
+}
|
|
|
+```
|