Integrating Corda into the Wider Ecosystem heading-link-icon

Corda is usually deployed as part of a wider ecosystem of applications in a modern enterprise. There are two possible integration points:

  • Corda REST API
  • External Messaging APIenterprise-icon

Each integration point has a specific purpose.

The Corda REST API is the primary way in which external applications interact with CorDapps Corda Distributed Application. A Java (or any JVM targeting language) application built using the Corda build toolchain and CorDapp API to solve some problem that is best solved in a decentralized manner. . This API allows external systems to start flows Communication between participants in an application network is peer-to-peer using flows. , monitor the flow status, and retrieve the output of a flow. This REST API uses JSON for requests and responses, and flows can output data in any text representations. This provides flexibility to external systems around how they interact with Corda.

Because flows have access to a JVM compatible language along with a REST API, they can be built to create a rich, custom CorDapp not just to initiate flows that interact with peers, but also flows that return or search the data in the vault A database containing all data from the ledger relevant to a participant. The database tracks spent and unspent (consumed and unconsumed) states. of a virtual node The combination of the context of a user and the ephemeral compute instances created to progress a transaction on that identity's behalf. , for example.

Corda REST API

The external messaging API provides a second way to interact with external systems. This API allows a CorDapp, from within flow code, to publish a message on a predefined Kafka The means by which Corda workers communicate, acting as a central message bus between the worker processes. topic which can then be consumed by an external system. This provides an integration point from within a CorDapp, as opposed to the REST API which provides integration points around a CorDapp.

Corda 5.1 provides only outbound connectivity. That is, a flow can send a message, but not receive one. A future version may support both send and send-and-receive messages.

External Messaging API

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.