Skip to content

Define the ReactEdge Artifact Lifecycle #27

Description

@digitalrisedorset

Summary

Document and formalize the lifecycle of ReactEdge widget artifacts from development through deployment.

As the platform evolves, widget contracts, SSR artifacts and registries have become deployment artifacts rather than Magento assets. Their ownership and lifecycle should be clearly defined to ensure every deployment remains independent and reproducible.

Motivation

Historically, widget contracts were shared through a common location, creating unnecessary coupling between deployments.

The platform now distinguishes between:

  • development artifacts owned by each widget;
  • compiled deployment artifacts owned by each deployment.

This separation should become the standard architecture across all ReactEdge integrations and deployment targets.

Proposed Architecture

Widget Repository

Each widget owns its development artifacts.

widget/
├── src/
├── public/
│   └── contracts/
│       └── default.json

These artifacts are intended for local development and testing.

Orchestrator

The orchestrator consumes development artifacts and generates deployment artifacts.

Development Contract
        ↓
Compile
        ↓
Deployment Artifact

Deployment Repository

Each deployment owns its compiled artifacts.

reactedge-artifacts/
└── <store>/
    ├── registry.json
    ├── contracts/
    └── development_contracts/

Magento, the SSR engine and the Health Engine consume these artifacts directly.

Benefits

  • Development remains independent from deployment infrastructure.
  • Every deployment owns its own compiled artifacts.
  • Magento is no longer responsible for generating ReactEdge artifacts.
  • The same deployment model works for every customer, project and environment.
  • Provides a clear foundation for future deployment automation and artifact publication.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions