Skip to main content

Asset dependencies

Assets can interact with interfaces that are provided by other Assets or by the platform core running on-premises. (By "interface" here we mean a service API or data of a known type to which the Asset developer can program.)

When an Asset interacts with an interface, we say it has a "dependency" on that interface. The platform currently supports the following kinds of interface dependency:

  • gRPC services (using the grpc:// prefix). An Asset can connect to a gRPC service as a client and call it to perform actions or computations. For example, a Skill might call a motion planning service provided by a Service.
  • proto messages (using the data:// prefix). An Asset can use a proto message provided by a data source. For example, a Service might use a perception model provided as the payload of a Data Asset.

The platform enables these interactions via an interface-based dependency mechanism, in which:

  1. The Asset developer specifies the interface(s) that their Asset ("Asset A") requires in its configuration message.
  2. The Solution builder selects another Asset ("Asset B") to resolve Asset A's interface dependency.
  3. At runtime, the platform provides Asset A the information needed to interact with Asset B's interface(s).

The following sections describe how Assets can: