Dreamine.Gem300
Dreamine.Gem300은 현대 .NET 애플리케이션을 위한 hardened 프로세스 내
GEM300 도메인 경계를 구현합니다.
증거 상태
| 기능 | 상태 | 증거 |
|---|---|---|
| E39/E40/E87/E90/E94 메모리 내 도메인 경계 | PASS |
모델·Manager·Workflow·무결성·동시성·취소·회귀 집중 테스트 |
| E39.1/E40.1/E87.1/E90.1/E94.1 표준 wire binding | BLOCKED_STANDARD |
필요한 mapping 원문을 로컬에서 확보하지 못함 |
| E116/E116.1, E42 및 E139 주장 | BLOCKED_STANDARD |
필요한 규범 원문을 확보하지 못함 |
| 외부 상호운용 및 현장 증거 | NOT_RUN |
독립 counterpart 또는 생산 장비 증거를 실행하지 않음 |
| 영속 저장, 재시작 복구 및 프로세스 간 소유권 | INTENTIONALLY_EXCLUDED |
이 제품화 Gate는 프로세스 내 메모리 범위로 명시함 |
PASS는 구현한 로컬 base Revision 도메인 경계에만 적용됩니다. 현재판 적합성,
인증, 표준 wire 지원 또는 벤더 상호운용을 의미하지 않습니다.
구현한 도메인 경계
- E39 방식 객체 Identity, 형식화된 RO/RW 속성, 취소 가능한 Action 및 애플리케이션 선언 Manager Projection
- Projection Key 예약, Source-of-truth 읽기, raw mutation/removal 차단 및 typed application action routing
- 원자적 Carrier/Substrate 수락·반출을 포함한 E87 Load Port와 Carrier 상태
- E90 Substrate 위치 점유, 체류 이력, 처리 상태 및 참조 Lease
- 보존 Process Program Identity와 Material Lease를 포함한 E40 Process Job 생명주기
- 중앙 Process Job 소유권과 공유 Execution Claim을 포함한 E94 직렬 Control Job Queue
- 애플리케이션이 명시하는 Carrier Slot↔Substrate 연결(순서나 위치 문자열을 Slot Index로 추론하지 않음)
- 안정적 Snapshot과 공유 Graph Identity 검증(호환되지 않는 built-in Manager Graph는 fail-fast)
- Journal Identity와 Drop/Retention Health 및 공유 비투척 Publisher를 제공하는 제한 용량 프로세스 내 Event Journal
- 실패 정리에서 전진 가능한 상태 전이만 사용하는 Experimental Carrier→Process→반출 Coordinator(Stopped/Aborted Process Job을 성공 Substrate 또는 Control Job 완료로 승격하지 않음)
안전한 조립
구체 Dreamine.Gem.GemRuntime을 사용할 때는 두 계층이 같은 Process Program
Store를 사용하도록 해당 Runtime에서 GEM300을 생성합니다.
var gem300 = Gem300Runtime.CreateFromGemRuntime(gemRuntime);
gemRuntime.ProcessPrograms.Put(new GemProcessProgram("RECIPE-1", [0x01]));
gem300.Carriers.RegisterLoadPort("PORT-1");
gem300.Carriers.SetInService("PORT-1");
gem300.Workflow.AcceptCarrier(new CarrierArrivalPlan(
"PORT-1",
"CARRIER-1",
[CarrierSlotState.CorrectlyOccupied],
[new SubstrateArrivalPlan("SUBSTRATE-1", "SOURCE-1", "DESTINATION-1")],
[new CarrierSubstrateSlotAssignment(0, "SUBSTRATE-1")]));
호환 조립을 위해 기존
Gem300Runtime(IGemRuntime, IGemProcessProgramService, ...) Constructor를
유지했습니다. 호출자는 GEM 계층이 사용하는 것과 동일한 논리 Process Program
Service를 전달해야 합니다. QuickStart는 한 Service Instance를 명시적으로 공유하며,
생산용 구체 Runtime에서는 CreateFromGemRuntime을 권장합니다.
명시적 Slot 연결과 Object Projection Key는 애플리케이션 통합 메타데이터입니다.
발명한 .1 wire mapping이 아닙니다.
문서
라이선스
MIT.
구조 다이어그램
flowchart LR
Runtime["Dreamine.Gem300"] --> Contracts["Dreamine.Gem300.Abstractions"]
Runtime --> GemContracts["Dreamine.Gem.Abstractions"]
Runtime --> Modules["Object / Carrier / Substrate / Jobs"]
Modules --> Events["Bounded Domain Event Journal"]API 문서
타입
\if KO E87-0312의 포트별 상태와 Carrier 병렬 상태를 원자적으로 관리합니다. \endif \if EN Atomically manages E87-0312 per-port and orthogonal carrier states. \endif
\if KO E94-0314의 직렬 Control Job Queue와 상태 전이를 관리합니다. \endif \if EN Manages the E94-0314 serial control-job queue and state transitions. \endif
\if KO Dreamine GEM300 구현 어셈블리를 검색하거나 등록할 때 사용하는 표식입니다. \endif \if EN Marks the assembly boundary used to discover or register Dreamine GEM300 implementations. \endif
\if KO 주입 시간과 제한 용량을 사용하는 스레드 안전 프로세스 내 이벤트 저널입니다. \endif \if EN Provides a thread-safe, process-local event journal with injected time and bounded capacity. \endif
\if KO 도메인 변경 이후 저널 장애를 호출자에게 다시 던지지 않고 상태로 관찰 가능하게 만드는 게시기입니다. \endif \if EN Publishes post-mutation events without rethrowing journal failures and exposes their health. \endif
\if KO E39 ObjType·ObjID와 공개 RO/RW 속성을 관리하는 스레드 안전 저장소입니다. Wire 서비스는 구현하지 않습니다. \endif \if EN Provides a thread-safe E39 ObjType/ObjID and public RO/RW attribute store without wire services. \endif
\if KO E39/E40/E87/E90/E94 기반 독립 모듈을 조립하는 GEM300 런타임입니다. \endif \if EN Composes independent E39/E40/E87/E90/E94-based GEM300 modules. \endif
\if KO 검증된 모듈 경계를 조합하는 Experimental Carrier→Job→반출 조정자입니다. 표준 wire 서비스를 구현하지 않습니다. \endif \if EN Provides an experimental carrier-to-job-to-removal coordinator over verified module boundaries; it does not implement standard wire services. \endif
\if KO E40-0312 Process Job leaf 상태와 Recipe·Material 존재 조건을 관리합니다. \endif \if EN Manages E40-0312 process-job leaf states and recipe/material existence conditions. \endif
\if KO E90-0312의 기판 병렬 상태, 위치 점유 및 체류 이력을 원자적으로 관리합니다. \endif \if EN Atomically manages E90-0312 substrate orthogonal states, occupancy, and residence history. \endif
CarrierManager
\if KO 이벤트 저널로 Carrier 관리자를 만듭니다. \endif \if EN Creates the carrier manager with an event journal. \endif
\if KO Carrier 스냅샷을 ID 순서로 반환합니다. \endif \if EN Returns carrier snapshots in stable ID order. \endif
\if KO Load Port 스냅샷을 ID 순서로 반환합니다. \endif \if EN Returns load-port snapshots in stable ID order. \endif
\if KO 이 관리자가 사용하는 비차단 이벤트 게시기 상태입니다. \endif \if EN Gets the non-throwing event-publisher health used by this manager. \endif
ControlJobManager
\if KO Process Job과 이벤트 경계로 관리자를 만듭니다. \endif \if EN Creates the manager with process-job and event boundaries. \endif
\if KO Control Job 스냅샷을 ID 순서로 반환합니다. \endif \if EN Returns control-job snapshots in stable ID order. \endif
\if KO 이 관리자가 사용하는 비차단 이벤트 게시기 상태입니다. \endif \if EN Gets the non-throwing event-publisher health used by this manager. \endif
Gem300EventJournal
\if KO 시간 공급자와 양의 용량으로 저널을 만듭니다. \endif \if EN Creates a journal with a time provider and positive capacity. \endif
\if KO 저널의 용량, 보존 구간 및 드롭 누계를 조회합니다. \endif \if EN Gets journal capacity, retained range, and cumulative drop metadata. \endif
\if KO 지정 순서 이후의 이벤트를 안정적인 순서로 제한 조회합니다. \endif \if EN Queries a bounded, stably ordered event snapshot after a sequence. \endif
\if KO 객체 유형과 ID를 각각 보존하여 객체 이벤트를 기록합니다. \endif \if EN Records an object event while preserving object type and ID separately. \endif
Gem300EventPublisher
\if KO 기존 저널과 선택적 시간 공급자로 게시기를 만듭니다. \endif \if EN Creates a publisher over an existing journal and optional time provider. \endif
\if KO 누적 기록 실패 상태를 안정적으로 조회합니다. \endif \if EN Gets a stable snapshot of cumulative recording failures. \endif
\if KO 문자열 Aggregate 이벤트를 비차단 방식으로 기록합니다. \endif \if EN Records a string-aggregate event without propagating journal failures. \endif
\if KO 객체 유형과 ID를 모두 보존하여 이벤트를 비차단 방식으로 기록합니다. \endif \if EN Records an object event without propagating failures while preserving both type and ID. \endif
Gem300ObjectService
\if KO 이벤트 저널로 객체 서비스를 만듭니다. \endif \if EN Creates the object service with an event journal. \endif
\if KO 이벤트 저널, 시간 공급자 및 객체별 동작 용량으로 객체 서비스를 만듭니다. \endif \if EN Creates the object service with an event journal, time provider, and per-object action capacity. \endif
\if KO 등록 객체 키를 유형과 ID 순서로 반환합니다. \endif \if EN Returns registered object keys ordered by type and ID. \endif
\if KO 애플리케이션이 명시한 객체 키를 manager 원본 상태 projection으로 예약합니다. 표준 객체 유형 이름을 추정하지 않습니다. \endif \if EN Reserves an application-declared object key as a projection over manager source-of-truth state without inferring standard object-type names. \endif
\if KO 객체 동작을 명시적으로 제거합니다. 실행 중인 호출은 캡처한 처리기를 계속 사용합니다. \endif \if EN Explicitly removes an object action; an in-flight invocation continues with its captured handler. \endif
\if KO projection 예약을 명시적으로 해제합니다. detach 이후 취소 callback과 이벤트를 모든 객체 lock 밖에서 실행합니다. \endif \if EN Explicitly releases a projection reservation; cancellation callbacks and events run outside all object locks after detach. \endif
\if KO 이 서비스가 사용하는 비차단 이벤트 게시기 상태입니다. \endif \if EN Gets the non-throwing event-publisher health used by this service. \endif
Gem300Runtime
\if KO 기반 GEM 런타임, 공정 프로그램 경계, 시간 및 이벤트 용량으로 런타임을 만듭니다. \endif \if EN Creates a runtime with a GEM runtime, process-program boundary, time, and event capacity. \endif
\if KO 구체 GEM 런타임이 소유한 동일 Process Program 저장소를 사용하여 GEM300 런타임을 만듭니다. \endif \if EN Creates a GEM300 runtime using the same process-program store owned by a concrete GEM runtime. \endif
\if KO Carrier 관리자입니다. \endif \if EN Gets the carrier manager. \endif
\if KO Control Job 관리자입니다. \endif \if EN Gets the control-job manager. \endif
\if KO 공유 이벤트 게시기의 현재 실패 상태입니다. \endif \if EN Gets the current shared event-publisher failure health. \endif
\if KO 모든 기본 모듈이 공유하는 비차단 이벤트 게시기입니다. \endif \if EN Gets the non-throwing event publisher shared by all built-in modules. \endif
\if KO 제한 용량 도메인 이벤트 저널입니다. \endif \if EN Gets the bounded domain-event journal. \endif
\if KO 객체 서비스 저장소입니다. \endif \if EN Gets the object service store. \endif
\if KO Process Job 관리자입니다. \endif \if EN Gets the process-job manager. \endif
\if KO Substrate 추적기입니다. \endif \if EN Gets the substrate tracker. \endif
\if KO Experimental 통합 조정자입니다. \endif \if EN Gets the experimental workflow coordinator. \endif
Gem300WorkflowCoordinator
\if KO 독립 모듈들로 조정자를 만듭니다. \endif \if EN Creates the coordinator from independent modules. \endif
\if KO 명시적 애플리케이션 Slot 연결을 검증한 뒤 Carrier와 기판을 하나의 built-in 트랜잭션으로 수락합니다. \endif \if EN Validates explicit application slot associations and accepts the carrier and substrates in one built-in transaction. \endif
\if KO Control Job의 Process Job을 단일 실행 claim 아래 순서대로 실행합니다. 실패 정리는 현재 상태에서 전진 가능한 전이만 적용합니다. \endif \if EN Executes a control job's process jobs under a single execution claim and performs only forward-valid cleanup transitions. \endif
\if KO 현재 조정 중인 Carrier ID를 안정적인 순서로 반환합니다. \endif \if EN Returns currently coordinated carrier IDs in stable order. \endif
\if KO Carrier 계획에 애플리케이션이 명시한 Slot↔Substrate 연결의 안정적인 스냅샷을 반환합니다. \endif \if EN Returns a stable snapshot of application-declared slot/substrate associations for a coordinated carrier. \endif
\if KO 모든 연계 기판이 목적지에서 최종 처리 상태인지 확인하고 built-in 트랜잭션으로 객체와 Carrier를 반출합니다. \endif \if EN Verifies terminal destination state and removes substrates and carrier in one built-in transaction. \endif
ProcessJobManager
\if KO 기판, 공정 프로그램 및 이벤트 경계로 관리자를 만듭니다. \endif \if EN Creates the manager with substrate, process-program, and event boundaries. \endif
\if KO Process Job 스냅샷을 ID 순서로 반환합니다. \endif \if EN Returns process-job snapshots in stable ID order. \endif
\if KO 이 관리자가 사용하는 비차단 이벤트 게시기 상태입니다. \endif \if EN Gets the non-throwing event-publisher health used by this manager. \endif
SubstrateTracker
\if KO 이벤트 저널과 시간 공급자로 추적기를 만듭니다. \endif \if EN Creates the tracker with an event journal and time provider. \endif
\if KO 기판의 현재 lease 소유자를 안정적인 순서로 반환합니다. \endif \if EN Returns current substrate-lease owners in stable order. \endif
\if KO 기판 스냅샷을 ID 순서로 반환합니다. \endif \if EN Returns substrate snapshots in stable ID order. \endif
\if KO 이 관리자가 사용하는 비차단 이벤트 게시기 상태입니다. \endif \if EN Gets the non-throwing event-publisher health used by this manager. \endif