Skip to content

🧩 Crafting — Core / Lifecycle

📦 Folder Overview

This folder defines the shared lifecycle vocabulary used by the Crafting system.

Types in this folder describe what phase a crafting job is in. They do not define how that phase is executed or what caused it.

This vocabulary is shared across runtime execution, events, UI, and diagnostics.


🧩 What Lives Here

JobLifecyclePhase

  • JobLifecyclePhase Unified lifecycle phases emitted by the Crafting service

Phases include:

  • Enqueued — job accepted (inputs and currency already consumed)
  • Started — job entered running state
  • Progress — progress notification
  • Completed — outputs delivered
  • Cancelled — job cancelled
  • Failed — job failed with a reason

These phases are intended for observation, not control.


🎯 Purpose

This folder provides a consistent vocabulary for:

  • job lifecycle events
  • UI feedback and status display
  • logging and analytics

It avoids duplicated enums and inconsistent interpretations.


🧠 Usage Guidance

Event Consumers

  • treat lifecycle phases as notifications
  • do not assume ordering across different jobs
  • rely only on ordering within a single job
  • use failure reasons alongside lifecycle events

UI and Analytics

  • use lifecycle phases to drive UI and telemetry
  • do not infer internal state from events alone
  • query the service for authoritative state

⚠️ Important Notes

  • JobLifecyclePhase is not the same as CraftJobState
  • lifecycle phases are a public event vocabulary
  • internal state transitions are not exposed

🚫 Not for Production Use

This folder does not include:

  • job scheduling logic
  • state machines or transitions
  • timing or progress calculations

  • Crafting Core (runtime behaviour)
  • Crafting Contracts (job state and results)

🧱 Public API

All types in this folder are part of the supported Crafting API surface.

  • new phases may be added
  • existing phases retain their meaning

🧠 Design Notes

  • simple, stable lifecycle vocabulary
  • describes what happened, not how

For more detailed state, query the Crafting service directly.