+interface PluginConnector {
+
+ /**
+ * Sends a message to another plugin running in the same node.
+ *
+ * @param pluginName The fully qualified name of the plugin
+ * @param identifier The unique identifier of the request
+ * @param fields The message being sent
+ * @param data Optional data
+ */
+ @Throws(PluginException::class)
+ fun sendRequest(pluginName: String, identifier: String, fields: SimpleFieldSet, data: Bucket? = null): Unit
+
+}
+
+/**
+ * Fred-based [PluginConnector] implementation.
+ */
+class FredPluginConnector @Inject constructor(