Textus Samples 01: 最小実行モデル

Created: 2026-06-29

Textus Samples は、Textus component の基本的な作り方と動かし方を、小さなサンプルを順に実行しながら理解するためのサンプル集です。

この記事では、Textus component の実行モデルを、1 つの Operation を CNCF engine 上で実行する例から確認します。

01-minimal は、1 Component、1 Service、1 Operation だけを持つ最小サンプルです。

前提

本記事では、📄 Textus Samples: Launcherとインストール の手順で準備した環境を使います。

  • textus-tutorial-0.1.1 を展開済み

  • cozy / cncf / textus launcher をインストール済み

  • 各 launcher の runtime を確認済み

download 手順は前提記事で扱っているため、ここでは再掲しません。

学ぶこと

  • CNCF engine selector の基本形

  • Component / Service / Operation の境界

  • development classpath と runtime builtin surface の違い

目的と着目点

このサンプルでは、Textus component の最小実行単位を、名前と実行経路の両方から確認します。Component / Service / Operation は、 minimal.main.hello という CNCF engine selector で呼び出されます。

run.sh は補助スクリプトですが、実際の呼び出しは cncf dev command --project-dev . minimal.main.hello という形です。この指定により、開発中の component を直接読み込みます。

概念の焦点

  • Component は runtime に登録される単位、Service は操作のまとまり、Operation は実行される振る舞いです。

  • --project-dev . は、packaged CAR ではなく現在の sample directory を開発対象として読む指定です。

サンプルディレクトリ

samples/01-minimal
samples/01.a-invocation-source-lab
samples/01.b-startup-shapes-lab
samples/01.c-builtin-and-help-lab

実行

まず、selector を直接指定して Operation を実行します。

$ cd samples/01-minimal
$ cncf dev command --project-dev . minimal.main.hello

--project-dev . は、このディレクトリを開発中 component として読む指定です。 minimal.main.hellominimal component の main service にある hello operation を選択します。

同じ確認をまとめて実行する補助スクリプトとして bash run.sh があります。

$ bash run.sh

コマンドの読み方

cncf dev command は、開発中の component をコマンドとして起動するモードです。引数に指定した minimal.main.hello<component>.<service>.<operation> の形で、起動した component の中から呼び出す operation を指定します。

run.sh と packaged invocation を比較する時は、出力ではなく component の読み込み元に注目します。前者は開発 classpath、後者は component directory に置いた jar を使います。

期待結果

message: Hello CNCF

補助 lab では、同じ minimal.main.hello を development source、startup shape、builtin/help surface から確認します。

出力の読み方

message: Hello CNCF は、selector が runtime に解決され、Operation が実行されたことを示す確認値です。

この段階では、永続化、server、client、job は扱いません。後続記事では、同じ selector model を別の実行形態で確認します。

よくあるつまずき

  • selector not found が出る場合は、component name と service name の大文字小文字ではなく CLI selector 形 minimal.main.hello を確認します。

  • 開発中の class を読ませたい時は --project-dev . が必要です。packaged component の検証とは目的が違います。

CNCFエンジン上の意味

CNCF engine の selector は component.service.operation です。

後続の CRUD、CQRS、Job、Subsystem のサンプルも、この selector と実行単位を前提にしています。

次へ

次の記事 📄 Textus Samples 02:Component Packagingでは、正式な packaged component と CAR loader の流れを確認します。

参照

用語集

Cloud Native Component Framework (CNCF)

Cloud Native Component Framework(CNCF)は、クラウド・アプリケーションを構成するコンポーネントを、単一かつ一貫した実行モデルで実行するためのフレームワークです。 Component / Service / Operation という構造を中核とし、command、server(REST / OpenAPI)、client、script といった異なる実行形態から、同一の Operation を再利用できることを特徴とします。 ログ、エラー処理、設定、配備といったクラウド・アプリケーションに必要な品質属性をフレームワーク側に集約することで、コンポーネントはドメイン・ロジックの実装に集中できます。 CNCF は、文芸モデル駆動開発および AI 支援開発を前提に、「何を実行するか」と「どのように呼び出すか」を分離するための実行基盤として設計されています。

コンポーネント (Component)

責務・契約・依存関係を明示的に定義し、再利用可能で交換可能な単位としてカプセル化されたソフトウェア構成要素。論理モデルでは抽象構造単位として、物理モデルでは実装・デプロイメント単位として扱われる。