Skip to content

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-specific Constructs and their config. This schema inherits from the Package Schema which inherits from the Framework Schema. It lives in config.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 between Package Authors and Application Developers

  • InfraPlan implementation - the package-specific implementation of the InfraPlan interface exposing Construct Instances and their relationships. Note: Relation is a Construct 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.