Gateway Worker heading-link-icon

The P2P gateway worker A worker designed to communicate with external Corda clusters via HTTPS. They have restricted access only to specific topics on the Kafka bus and view only the minimum information needed for their role. is tasked with sending outbound messages to virtual nodes located in different clusters and receiving inbound messages from virtual nodes within different clusters. To accomplish this, a gateway worker establishes TLS Transport Layer Security. A protocol that establishes an encrypted session between two computers on the Internet. connections with gateway workers in other clusters and exchanges messages through HTTPS requests.

In the outbound direction, internal components within the cluster forward messages intended for the gateway worker through a message bus (for example, Kafka). Similarly, in the inbound direction, the gateway worker forwards any messages received via HTTPS from other clusters to the local cluster through the message bus.

The P2P gateway worker is additionally tasked with conducting certificate revocation checks In the context of X.509 certificates, revocation checks refer to the process of verifying if a digital certificate is still valid and has not been revoked by the issuing Certificate Authority (CA). . These checks are carried out either as part of the TLS handshake with other gateway workers or on behalf of other components within the internal network zone of the cluster that cannot reach out to the public Internet. The gateway worker receives requests to perform these revocation checks and returns the results via a message bus.

You can observe the behavior of these functions using the following metrics: rate or latency of inbound/outbound requests, number of inbound/outbound TLS connections, and rate or latency of revocation checks.

MetricTypeTagsDescription
corda_p2p_gateway_inbound_request_time_secondsTimer
  • response.type
  • endpoint.source
The latency and the number of requests from a gateway worker to peer gateway workers in other clusters.
corda_p2p_gateway_outbound_request_time_secondsTimer
  • response.type
  • endpoint.destination
The number of incoming requests from peer gateway workers in other clusters and the time it took to process them.
corda_p2p_gateway_inbound_tls_connections_countCounter
  • connection.result
  • endpoint.source
The number of inbound TLS connections from other gateway workers. Connections are kept open while there is activity.
corda_p2p_gateway_outbound_tls_connections_countCounter
  • connection.result
  • endpoint.destination
The number of outbound TLS connections from other gateway workers. Connections are kept open while there is activity.
corda_p2p_gateway_cert_revocation_check_time_secondsTimerNoneThe number of certificate revocation check requests and the time it took to process them. These requests are sent to the gateway worker from internal components when they want to check revocation of a certificate. An example is the link manager checking revocation of session certificates when these are used (by default, session PKI is turned off).

Tags:

  • response.type: The status code of an HTTP request.
  • endpoint.source: The source endpoint of a peer-to-peer message.
  • endpoint.destination: The destination endpoint of a peer-to-peer message.
  • connection.result: The result of a TLS connection, for example, “success” or “failure".

Was this page helpful?

Thanks for your feedback!

Chat with us

Chat with us on our #docs channel on slack. You can also join a lot of other slack channels there and have access to 1-on-1 communication with members of the R3 team and the online community.

Propose documentation improvements directly

Help us to improve the docs by contributing directly. It's simple - just fork this repository and raise a PR of your own - R3's Technical Writers will review it and apply the relevant suggestions.

We're sorry this page wasn't helpful. Let us know how we can make it better!

Chat with us

Chat with us on our #docs channel on slack. You can also join a lot of other slack channels there and have access to 1-on-1 communication with members of the R3 team and the online community.

Create an issue

Create a new GitHub issue in this repository - submit technical feedback, draw attention to a potential documentation bug, or share ideas for improvement and general feedback.

Propose documentation improvements directly

Help us to improve the docs by contributing directly. It's simple - just fork this repository and raise a PR of your own - R3's Technical Writers will review it and apply the relevant suggestions.