Introduction

The CDK Constructs Libraries are an extension of the AWS Cloud Development Kit (AWS CDK) that provides well-architected patterns for quickly defining solutions in code to create predictable and repeatable infrastructure. The goal of the CDK Constructs Library is to accelerate the experience for developers to build solutions of any size using pattern-based definitions for their architecture.

This project uses a combination of Projen and Lerna to perform the necessary scaffolding and software development lifecycle utilities e.g. independent versioning or testing. Knowledge of these would be beneficial, although following the steps on this page should be sufficient to enable you to create a new construct and publish it to the Curtin ConstructHub.

The use of projen simplifies the creation of jsii compatible constructs, which are required for them to be ingested into ConstructHub and adds ability to publish libraries in multiple languages.

Lerna is a system that helps develop and maintain multiple Typescript packages from a single repository (monorepo).

There are currently 4 libraries that represent constructs for different purposes:

  1. Core Library - Contains common data types and utilities classes used across the other 3 libraries
  2. Base Library - The patterns defined in the CDK Base Constructs Library are single AWS service wrappers of the AWS CDK constructs that have default configurations based on well-architected best practices.
  3. Integrations Library - Patterns to allow you to integrate with other systems or data sources using more specialised constructs.
  4. Experiences Library - Patterns that are related to the user’s interaction with a system