Channel is something that passes messages between stakeholders. Channels can transform/enrich and aggregate messages.
Channels can be:
For example, a book might be considered as a message addressing potential readers’ concerns. It is delivered over the publisher channel (LeanPub, Amazon), which is:
This section contains examples of channels in a software development enterprise consisting of human and automation stakeholders. While it might be argued that an automation stakeholder is a resource, we’ll consider it as a stakholder because it can receive messages and act on them including sending other messages.
Version control systems like Git (GitHub, GitLab) can be considered a distributed event store and stream-processing platform similar to Apache Kafka.
Commit is an event/message, branches are streams of commits. Both humans and automated agents may receive messages by polling (pull) or pushing (web hooks).
Sample scenario:
There are two demos of the above scenario - retrieving sources from GitLab, generating a test case using OpenAI, committing generated code and creating a merge request:
Version control system can be also used to pass “messsages” - files - to a web browser. Examples:
An issue tracking system like GitHub issues or Jira may also be considered as a channel with issues being messages.
In the above example, an automated AI assistant may:
In the above example there are multiple recipients of the message (issue):
A Maven repository can be used to pass generated documentation “messaages” to development environments such as Eclipse and web browsers using solutions like https://javadoc.io/ as an intermediary channel.
P2 repositories can be used to deliver integrated documentation “messages” - bundles/plugins - to Eclipse IDE including Eclipse Help System server.