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 Definitionimplementation - defines the schema of the package-specificConstructsand their config. This schema inherits from thePackage Schemawhich inherits from theFramework Schema. It lives inconfig.def.json -
Constructimplementations - 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 AuthorsandApplication Developers -
InfraPlanimplementation - the package-specific implementation of theInfraPlaninterface exposingConstruct Instancesand their relationships. Note:Relationis aConstructtype. 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. -
Plannerimplementation - factory containing logic for instantiating the package-specific InfraPlan instance based on the specific infra configuration (config.json) provided at runtime.