
With the following APIs the transfer of messages of any type <TYPE> can be performed on a specified channel:
Figure 1 shows the channel factory class for creation of producer and consumer objects depending on the messaging channel. For identification of a channel, besides using Channel Group ID and Channel ID you can also the specify an optional Channel Extension ID. Through the Channel Extension ID the sender can restrict the eligible recipients by defining the scope of the channel.

With the producer interface the sender can send the associated message type <TYPE> to the related channel (Figure 2).

For asynchronous processing, a callback method needs to be implemented for each associated message type <TYPE> according to the receiver interface (Figure 3).

Through the consumer interface the receiver program is able to control the delivery and receiving phase of the messages, that is, to start and stop the delivery of the messages. To start and stop the delivery of messages, the reference to the associated receiver interface is required (Figure 4).

A default (de)serialization is provided with standard delivery. For customized (de)serialization of messages of different types <TYPE> the following marshalling interface can be used (Figure 5).

The AMC framework offers a default implementation for any message type (figure 6) with the exception of application-specific receiver interfaces (figure 4).

It would be technically feasible to exchange messages between different SAP systems but this function is out of scope of the functionality currently supported.
In order to enable a point-to-point communication, for example, for confirming the receipt of messages, the producer and consumer can use a "private channel" which is only known to the communication partners.