/creek-platform-metadata

Defines the types used to describe platform components

Primary LanguageJavaApache License 2.0Apache-2.0

License Coverage Status build CodeQL

Creek Platform Metadata

A dependency-free library that defines the types used to describe platform components.

A platform is make up of services components and, optionally, services can be grouped into aggregates components. Each component has a descriptor: a java class that defines metadata about the component. This metadata is used by Creek to provide its functionality and can be used by other components. For example, the output of one component can be used to define the input of another.

Descriptor types

Service descriptors

Services should provide an implementation of ServiceDescriptor to define key metadata needed by other components and the Creek system, including things like inputs, internals, outputs, docker image name and any environment variables to set during testing.

Aggregate descriptors

Each aggregate should provide an implementation of AggregateDescriptor to define their public inputs and outputs.

Descriptors

Descriptors define, among other things, the components inputs, internals, outputs:

Inputs

The inputs of a component define any external resources the component consumes/reads.

All input resources implement the ComponentInput marker interface.

Internals

The internals of a component define any external resources the component uses internally to perform its function.

All internal resources implement the ComponentInternal marker interface.

Outputs

The outputs of a component define any external resources the component produces/writes.

All output resources implement the ComponentOutput marker interface.