Package Implementation
A Package
- is a concrete implementation of a collection of Constructs
based on a Framework Implementation
and Package Spec
. Package Authors produce these. They decide which services to bundle in the package and how much to encapsulate. Think encapsulating common patterns and best practices. We expect internal Platform Engineering teams, third-party consultancies, and FABR to be natural Package authors. Example: see samples/packages/fabr/aws-cdk sample project.
-
IaC Runtime - a package implementation is based on one of AWS CDK, TF CDK, or Pulumi.
Config Definition
implementation - defines the schema of the package-specificConstructs
and their config. This schema inherits from thePackage Schema
which inherits from theFramework Schema
. It lives inconfig.def.json
-
Construct
implementations - think of this as the abstracted cloud service catalogue being exposed to app developers. At a high level, this is the core/crux of the contract formed betweenPackage Authors
andApplication Developers
-
InfraPlan
implementation - the package-specific implementation of theInfraPlan
interface exposingConstruct Instances
and their relationships. Note:Relation
is aConstruct
type. Application Developers can hook into this using Custom Modules 1) further customise provisioning 2) implement Cloud Vendor services that aren’t part of the package. -
Planner
implementation - factory containing logic for instantiating the package-specific InfraPlan instance based on the specific infra configuration (config.json) provided at runtime.