Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Extensions offer that extra leverage to easily migrate and offer support for these platforms as they try to fully adopt to the Firebolt Architecture.

...

What is a Ripple Contract?

A contract is a concrete unit of work expected to be fulfilled by a Ripple extension.

Each contract maps to a Request, Response, or Event structure or enumeration defined mostly by Firebolt Openrpc Schema. 

An Extension implements a request processor based on the Request structure thereby providing fulfillment of the given contract.

Ripple Main uses the contract definition in the Extn manifest to create a map for Inter Extension Communication.

Why do we need a Ripple Contract?

Standardization: Similar to Ripple offering Firebolt capabilities contracts offer definition and control over the extensions. This provides a layer of abstraction that can be configured by each operator.

Below are some examples

  1. Operator A can use a Mac address for a unique Device ID and Operator B can use a backend system to define a Device ID.
  2. Operator A can use the local device persistent storage and Operator B can use a cloud persistence to store the same data. 

Mapping: Each extension contains a list of contracts that it is expected to fulfill these are clearly defined in the Extension Manifests. Main uses this mapping to redirect the incoming Extn requests to the right extension so they can be correctly processed.

Authorization: Each extension can only fulfill a listed contract in the manifest, this part is a critical component in making sure extensions do not even register a processor for which a contract is not expected to be fulfilled by the manifest.

Permissions: Manifests also has the uses  field for each extension which decides the permissions for each extension in terms of calling other contracts.

HLA

Manifests

Ripple SDK

Ripple Main

...