Components - TheMirageProject/mirage GitHub Wiki

Lambda (Serverless) Runtime

Mirage brings power to the people by making serverless lambda functions available to string together by non-developers.

Build Process

  1. Watch for content changes
  2. Engage lambda to bundle assets
  3. Lambda Processes Changes
  4. Lambda Streams Changes out to the origin that services the CDN
  5. Issue Invalidations if needed to CDN

Data Layer

The Data layer is the collection of resources available from the cloud provider.

Bolts

  • Bolts extend the core capabilities of theMirageProject.
  • Bolts request permission to add on resources (which may incur greater expense for the site owner)
  • The permissions are enforced/codified via Roles and Permission Grants via the Cloud Provider
  • Best Practice is to listen/subscribe to published messages - and to additional publish its own state progress via new messages - enabling downstream coordination.

HTTP(S) API

  • Mirage exposes data in public and protected portions of the HTTP API
  • Mirage exposes both REST-ful and GraphQL endpoints.
  • Bolts can extend the API such that new data is available via the API

CLI

  • Sometimes the internal state of the complete system is useful for troubleshooting
  • These types of functionalities are exposes via the Command Line Interface
  • The Command Line interface also augments developer workflows to avoid context switching and productivity dips

Theme Guide

  • Themes are often built in React, but are available with any type of theme that can run as single page application. Vue, Angular, etc are all welcome.