In order for two Identities to communicate with each other and exchange data, they must establish a Relationship between them. If an active Relationship to another Identity is no longer wanted, it can be terminated.

Terminating an active Relationship initially blocks regular communication for both Identities, but does not yet delete any Relationship data. The only possible communication between them is to request the reactivation of the terminated Relationship, which can be done by both Identities. Accepting the reactivation request returns the Relationship to an active status.

An already terminated Relationship can be decomposed to delete the Relationship and all data transmitted during the Relationship from the Connector or the App, respectively. It is then no longer possible to reactivate the Relationship. Getting to an active Relationship again means starting from scratch.

Terminate an active Relationship

Terminate an active Relationship with the use case Terminate Relationship with the relationshipId as input. The status of the Relationship is changed to "Terminated". You receive a transport.relationshipChanged event, and the peer as well if they use a Connector. Then no Messages can be sent from either side, this includes Requests, Notifications and sharing Attributes. The peer cannot prevent the termination.

Reactivate a terminated Relationship

At any time, you or your peer can request the reactivation of the terminated Relationship with the use case Request Relationship reactivation.

If your peer requests the reactivation, you will receive a transport.relationshipReactivationRequested event in addition to a transport.relationshipChanged event, which the peer also receives if they use a Connector. If you then wish to return the Relationship to an active status, you accept the reactivation with the use case Accept Relationship reactivation. If you want to keep the Relationship terminated, you reject the reactivation with the use case Reject Relationship reactivation.

If you have requested the reactivation and changed your mind, you revoke it with the use case Revoke Relationship reactivation.

Each use case has the relationshipId as input. Only accepting the reactivation changes the status of the Relationship, namely from "Terminated" to "Active". Requesting, rejecting or revoking the reactivation don’t change its status. However, they still are recorded as an AuditLogEntry in the auditLog of the Relationship. Regardless of whether the reactivation is accepted, rejected or revoked, you receive a transport.relationshipReactivationCompleted event in addition to a transport.relationshipChanged event and the peer as well if they use a Connector.

Decompose a Relationship

Decomposing a Relationship deletes from your Connector

  • the Relationship
  • the peer’s RelationshipTemplates
  • the Relationship’s RelationshipTemplate if it was single use (its maxNumberOfAllocations is 1) or owned by the peer - for a new Relationship you will have to exchange a RelationshipTemplate again
  • shared Attributes, Notifications, Requests (in each case both sent and received)
  • sent and received Messages with one exception: If you have sent a Message to multiple recipients, the Message is not deleted but the peer’s address is replaced with a pseudonym. The pseudonym is the same for every peer.
  • furthermore, Tokens and AttributeListeners.

The use case is Decompose Relationship, which takes the relationshipId as input. For the peer, the Relationship is not deleted, but its status now is "DeletionProposed". If the peer uses a Connector, they receive a transport.relationshipChanged event. You receive a transport.relationshipDecomposedBySelf event. The peer is expected to follow suit once the shared data is no longer needed. Only after both Identities involved in the Relationship have decomposed it, the Relationship itself and data transmitted during it are deleted from the Backbone. To get to an active Relationship again after one involved Identity has decomposed, the other Identity must decompose as well. After that, the two have to start from scratch to establish a Relationship, as reactivation of the former Relationship is no longer possible.