Discovery and Registration for Certified Delivery

Discovery

When a CM listening transport receives a labeled message from a sending CM transport that is not listed in the listener’s ledger, we say that the listener discovers the sender on the message subject.

Four actions follow discovery:

The CM listener transport adds the sender’s correspondent name to the listener’s ledger, as a source of messages on the subject.
The CM listener transport contacts the CM sending transport to request registration for certified delivery of the subject.
The CM listener transport presents a REGISTRATION.DISCOVERY advisory.
The CM listener transport stores inbound messages on the newly discovered subject from the CM sender.

Registration

When a sending CM transport receives a registration request from a CM listener transport, the sender automatically accepts the request (but see Disallowing Certified Delivery, and No Response to Registration Requests). Acceptance consists of these four actions:

The CM sender transport registers the listener for certified delivery of the subject— recording that fact in the sender’s ledger.
The CM sender transport notifies the CM listener transport that the registration requested is accepted—the sender accepts responsibility for certified delivery on the subject.
The CM sender transport presents a REGISTRATION.REQUEST advisory, to announce the new registered listener to the sending program.
When the CM listener transport receives the acceptance reply, it presents a REGISTRATION.CERTIFIED advisory.

After registration completes successfully, the CM listener transport queues the stored inbound messages in the correct sequence.

Certified Delivery Agreement

Following registration and acceptance, the sending and listening CM transports have a certified delivery agreement on the subject.

The sending CM transport is responsible to record each outbound message on that subject, and to retain the message in its ledger until it receives confirmation of delivery from the listener (or until the time limit of the message elapses).
In return, the listening CM transport is responsible for confirming delivery of each message.

Rendezvous certified delivery software arranges all of this accounting automatically. The sending and listening programs do not participate directly in these protocols—only indirectly, by sending and listening with certified delivery library calls.

Notice that although both transports participate in a certified delivery agreement, the agreement is asymmetric—it certifies messages from a sender to a listener. A two-way conversation requires two separate certified delivery agreements to certify messages in both directions.

We refer to the two CM transports that participate in a certified delivery agreement as a certified sender and a certified listener, and the labeled messages that flow between them are certified messages. Notice the subtle difference in terminology—before establishing a certified delivery agreement, the participating transports are CM senders and CM listeners; afterward, they are certified senders and certified listeners. Similarly, a labeled message becomes a certified message only when the sender and receiver maintain a certified delivery agreement.