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:
- The Asset developer specifies the interface(s) that their Asset ("Asset A") requires in its configuration message.
- The Solution builder selects another Asset ("Asset B") to resolve Asset A's interface dependency.
- 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: