Intro to channels
Processors in the connector architecture are usually stream processors. The stream they consume or generate is technology independent. A channel is an instance of a stream between two processors, a transportation method of some kind. The easiest examples are websocket streams or kafka streams.
A channel consists of a reader and a writer part, that together form a channel. Each channel has it’s own configuration (separate for readers and writers) that defines the required fields.
Example http-channel
Here you can see an example configuration of a HTTP channel configuration. It defines a reader and a writer and together forms a HTTP channel. Shapes are defined for both the reader and the writer part.
@prefix : <https://w3id.org/conn#> .
@prefix sh: <http://www.w3.org/ns/shacl#> .
@prefix xsd: <http://www.w3.org/2001/XMLSchema#> .
:HttpChannel a :Channel;
:reader :HttpReaderChannel;
:writer :HttpWriterChannel.
:HttpReaderChannelShape a sh:NodeShape;
sh:targetClass :HttpReaderChannel;
sh:property [
sh:datatype xsd:integer;
sh:path :httpPort;
sh:name "The port to bind the HTTP server to"
].
:HttpWriterChannelShape a sh:NodeShape;
sh:targetClass :HttpReaderChannel;
sh:property [
sh:datatype xsd:string;
sh:path :httpMethod;
sh:description "The method to use for the HTTP action"
], [
sh:datatype xsd:string;
sh:path :httpEndpoint;
sh:description "The endpoint to use for the HTTP action"
].