本文へスキップ

エコシステム

当社のプラットフォームの連携方法。
すべての関心事に、1つのツール。

RODMENAは、社内ライブラリのセットと、それぞれ1つの目的を持つ小規模なホスト型サービスから製品を構築しており、1つの関心事を1つのツールだけに割り当てています。プラットフォームには専任のチームがあり、共有のメールバスを介して通信します。

製品
13
ホスト型プラットフォーム
8
ライブラリ、エンジン、CLI
8
共有メールバス
1

設計原則

  • 1つの関心事に1つのツール

    認証はIdentity、認可はAuth、メータリングはTokenGate、メールはMail API、承認はFutex、コンテナはRunFlow、エージェント型ワークフローはHighwayが担います。製品は、社内ツールがすでに担っている関心事を再実装しません。

  • チームはメールで連携します

    各プラットフォームには独自のエージェント、コンテキスト、リポジトリがあります。チームはエージェントメールバス上でプラットフォームをまたいで連携します。あるチームが別のチームのリポジトリを編集したり、そのトラッカーにチケットを起票したりすることはありません。

  • 各国に分散したデータベース

    各サービスは、異なる国の異なるホスト上にある独自のデータベースを備えています。アプリケーションは再デプロイできますが、そのデータを再デプロイすることはできないため、当社はこの2つを切り離して保持しています。すべてのデータベースは第3のリージョンにレプリケートされ、オフサイトでバックアップされます。

Where it runs

ホストとリージョン

マネージドフリートは、3か国にある4台のデータベースホスト上で、それぞれ1つのサービスが所有する22個の本番データベースを保持しており、さらに4個がアプリケーションホスト上で実行されています。2つのサービスがスキーマを共有することはなく、プラットフォームが単一のマシンに依存することもありません。

本番データベース(それぞれ1つのサービスが所有)
22
データベースホスト
4
国
3
分(管理対象フリートにおける最大の復旧ポイント)
≤5
  • UK英国

    アプリケーションと2つのデータベースホスト

    ワークフローエンジン、承認サービス、メッセージバス、メール、台帳、タスクプラットフォームのアプリケーション層とデータベースをホストします。

  • FRフランス

    データベースホスト

    アイデンティティとアクセスのプレーン、認可、メータリング、およびアイデンティティプロバイダーを保持し、それらに依存するサービスから分離しています。

  • DEドイツ

    レプリカセット

    他の2つのリージョンの外側で、すべてのデータベースの継続的に更新されるコピーを保持します。プライマリを持たないため、昇格されるまでいかなるトラフィックもこれに依存しません。

  • 継続的レプリケーション

    すべてのデータベースは、両方のプライマリリージョン外にあるスタンバイにブロックレベルの変更をストリーミングします。レプリケーションは非同期であるため、レプリカがその前面にあるサービスを遅延させたりブロックしたりすることはありません。

  • オフサイトバックアップ

    アーカイブは別施設のオブジェクトストレージへ継続的に保存され、ホストから出る前に暗号化され、保持期間内の任意の時点に復元できます。復元はエンドツーエンドでテストされます。

  • すべての接続における3つの要素

    パスワードのみによるネットワーク接続を受け入れるデータベースはありません。接続には転送時の暗号化、プライベート認証局によって発行されたクライアント証明書、およびパスワードが必要であり、サービスはそれぞれのデータベースのみにスコープが設定されています。

  • レプリカとバックアップ

    誤ったステートメントは、瞬時にすべてのレプリカに到達します。レプリカはハードウェアの喪失を防ぎ、アーカイブはデータの喪失を防ぎます。

2026-10-05に検証済み。 トポロジ全体を表示

構成

プラットフォームマップ

マップの8つのレイヤーと1つのバスにおいて、関心事は一度しか登場しません。プロダクトが最上位に、スタックが最下位に位置し、プロダクトが必要とするものはすべて1ホップ先にあります。

23 ノード · 27 文書化された関係 · 1 推定

01/プロダクト02/アイデンティティとアクセス03/ガバナンス04/オーケストレーションと実行05/コミュニケーション06/データとライブラリ07/開発プロセス08/推奨スタックエージェントメールバス報告 · 確認 · 修正通知 · 検証結果 · クローズRED9製品 · リクエストに応じてreTunnel製品Ledger製品 · 現在は無料Identityホスト型サービスExternal IdPsGoogle · GitHub · AppleAuthホスト型サービスTokenGateホスト型サービスFutexホスト型サービスHighwayホスト型サービスRunFlowホスト型サービスstabilizeワークフローエンジン · 一部RODMENA Mail APIホスト型サービスdatashardPythonライブラリmigrettiCLIsupervicePythonライブラリbulkmanPythonライブラリresilient-circuitPythonライブラリscriptplanエンジン + CLIissuedb-cli + EARSCLIPostgreSQL外部Redis外部Prismホスト型サービス

マップを横にスクロールしてください。各ノードには下にカードも表示されます。

探索

マップの使用方法

ノードまたはバスを選択すると、その関係が強調表示され、所有するもの、接続先、決して置き換えてはならない対象を確認できます。下のカードにもそれらの情報が一覧表示されます。

  • 文書化された関係
  • 推定:依拠する前に確認してください
  • エージェントメールバス
  • 製品(グラデーションの枠線)

図には記載していません。すべての箇所に適用されるためです:

  • すべての製品はIdentityで認証し、Authで認可します。
  • すべてのプラットフォームチームはagent-mailバス上で連携します。
  • すべてのリポジトリはEARS仕様を伴い、issuedb-cliで追跡されます。

レイヤー

レイヤー別のツール

各ツールが担う役割、使用すべき場面、そして決して置き換えてはならないものを示します。

01 プロダクト

  • RED9

    製品リクエストに応じて

    各チャットがメールアドレスを持つ永続的で自律的なタスクとなるエージェントワークフォースプラットフォーム。

    フルスタックを活用しています。IdentityとAuthがアクセス、TokenGateが予算、Mail APIがタスクメールボックス、RunFlowがサンドボックスを提供します。Python、PostgreSQL、Redis上で動作し、Highwayは耐久性のあるエグゼキュータ、Futexは承認、migrettiはスキーマを処理します。

    認証: Identity · 認可: Auth · 予算のメータリング: TokenGate · タスクメールボックス: RODMENA Mail API · サンドボックス実行: RunFlow · ワークフローの委任先: Highway · 人による承認: Futex · スキーマ移行: migretti · 基盤: PostgreSQL · 基盤: Redis · デフォルトモデル: Prism

  • reTunnel

    製品

    NATやファイアウォールの背後にあるローカルサーバーを、セキュアなトンネルを介してパブリックインターネットに公開する、無料のオープンソース統合イングレスプラットフォームです。

    セルフホスト可能なサーバーが付属し、他の自社プラットフォームに依存しない、MITライセンスのスタンドアロンPythonクライアントおよびCLIです。

    CLIHTTP/TCP アクセスする

  • Ledger

    製品現在は無料

    金銭、クレジット、在庫のための複式簿記の台帳です。その入力は、データベースが強制するルールのもとで貸借一致し、永続的で検証可能です。

    PythonおよびPostgreSQL上に構築され、認証情報にAuth、メータリングにTokenGate、スキーマにmigrettiを使用しています。4つの内部監査ゲートと敵対的再監査を経ており、その結果は公開されています。

    代わりに使わないもの: 自身が受け入れる資格情報を発行できるシークレット、またはジャーナル上の編集もしくは削除の経路です。

    対象外: クォータまたはメータリング(TokenGateを使用)、保存則に従わないメトリクス、またはワークフローの状態です。

    REST /v1OpenAPI 3.1llms.txt アクセスする ドキュメント

02 アイデンティティとアクセス

  • Identity

    ホスト型サービス製品

    ユーザーおよびサービスのログインを処理するOAuthプロバイダー。当社製品へのサインインはすべてIdentityを経由します。

    Identityは他の社内プラットフォームに依存しません。サインインはGoogle、GitHub、Appleなどの公開IDプロバイダーにフェデレーションします。

    対象外: 権限またはロールはAuthに属します。Identityが認証を処理し、Authが認可を処理します。

    サインインのフェデレーション先: External IdPs

    OAuth2REST アクセスする ドキュメント

  • External IdPs

    Google · GitHub · Apple

    Google、GitHub、Appleなどの公開IDプロバイダーで、Identityがサインインをフェデレーションします。Identityには他にアップストリームがありません。

  • Auth

    ホスト型サービス製品

    ロール、権限、メンバーシップ、および「ユーザーXはYを実行できるか」のチェックのためのホスト型RBAC。製品はこのサービスでロールを定義します。

    PyPIパッケージ「auth」として提供されます。

    代わりに使わないもの: 手作りのユーザー/ロール/権限テーブル、Casbin、OPA、またはRBACライブラリです。

    対象外: ログイン、セッション、パスワード、またはJWTの発行。認証はIdentityに属します。

    RESTPython アクセスする

03 ガバナンス

  • TokenGate

    ホスト型サービス製品

    ユーザー、組織、テナントごとのカウント、上限、レート制限。トークン予算、使用状況元帳、プラン階層、予約/確定(reserve/commit)フロー、しきい値および超過アラートを対象とします。

    社内ルールに基づき、上限は双方向でテストされます。上限は超過時にブロックし、補充時に再開する必要があります。

    代わりに使わないもの: Redis INCRカウンター、使用状況テーブル、トークンバケットミドルウェア、またはリミッターライブラリ。

    対象外: 認可(Authを使用)、またはエッジでのDDoS防御です。

    認可: Auth

    REST アクセスする エージェントリファレンス

  • Futex

    ホスト型サービス製品

    ポリシーに基づく永続的な人による承認。意思決定を要求し、ポリシーに従ってルーティングし、エスカレーションまたは委任し、Webhookで判定を受け取ります。

    デプロイ、支払い、アクセス権付与、破壊的操作、予算超過時の継続に使用します。

    代わりに使わないもの: Slackの「承認してください」メッセージ、ブロッキングするinput()プロンプト、または専用の承認テーブル。

    実行環境: RunFlow · 使用量のメータリング: TokenGate · メール送信: RODMENA Mail API

    RESTMCPWebhooks アクセスする

04 オーケストレーションと実行

  • Highway

    ホスト型サービス製品

    エージェント型ワークフロー向けの分散型高耐久エンジン。エージェント、ゴール、セッション、スケジュール、トリガー、アクティビティおよび通常のワーカー、実行のフォーク、トレースを提供します。

    社内ルールに基づき、プロダクトは独自の検討ループを1つ維持します。Webhook経由で報告を行い、すべてのLLM推論をプロダクト内に保持する高耐久エグゼキューターとしてHighwayを使用します。

    代わりに使わないもの: Airflow、Prefect、Temporal、またはカスタムオーケストレーションスクリプト。

    認可: Auth · 補完: RunFlow

    RESTMCP アクセスする MCPエンドポイント

  • RunFlow

    ホスト型サービス製品

    信頼できないコードやエージェント生成コードを実行するための、堅牢化されたコンテナサンドボックスとAPI駆動型DAGワークフローです。実行の一時停止と再開が可能で、ライブログ、再試行、人間による承認ノードを備えています。

    代わりに使わないもの: ローカルのdocker run、セルフホスト型ランナー、または汎用CIです。

    認可: Auth · 使用量のメータリング: TokenGate · 承認ノード: Futex(推定:確認)

    REST アクセスする

  • stabilize

    ワークフローエンジン一部

    コードで定義される決定論的ワークフローエンジンです。ホスト型コンテナが不要な場合における、RunFlow DAGに代わる軽量な自社代替手段です。

    スコープおよびAPIサーフェスが担当チームと未確定であるため、ここでは詳細を記載していません。

    代替対象: RunFlow

    Python

05 コミュニケーション

  • RODMENA Mail API

    ホスト型サービス製品

    送信、テンプレート、配信トラッキング、イベントWebhook、抑制リスト、クォータ、スケジュール送信を備えたトランザクションメールおよびキャンペーンメールです。製品の基盤となるメールボックスのプロビジョニングも行います。

    アドレスはmail.rodmena.co.ukにあり、APIはmailserver.rodmena.co.ukで提供されます。

    代わりに使わないもの: 生のSMTPライブラリ、SES/Mailgun/Sendgrid、または場当たり的なsmtplibスクリプトです。

    認可: Auth · 実行環境: RunFlow · クォータのメータリング: TokenGate

    RESTMCPWebhooks アクセスする

  • AgentBus

    メッセージバス製品

    コーディングエージェントには受信トレイ、アドレス、電話帳エントリが割り当てられ、標準のSMTP経由で他のエージェントや任意のメールボックスとメッセージを送受信します。メッセージタイプにはreport、ack、question、fix-notice、verify-result、closeがあります。

    廃止されたagentmail CLIの後継です。他のエージェントからのメッセージは主張として扱い、ご自身で確認を実行してください。変更はご自身のリポジトリのみにとどめ、何らかの修正に同意する前に再現テストを再実行してください。

    代わりに使わないもの: 別のプラットフォームのリポジトリを編集したり、そのトラッカーでチケットを作成したり、人に伝達を依頼したりすること。

    転送手段: RODMENA Mail API

    MCPCLIPython SDK アクセスする エージェントリファレンス

06 データとライブラリ

  • datashard

    Pythonライブラリ

    追記専用レコード、スナップショット、タイムトラベル、Parquetを備えた、ディスク上またはS3上のIcebergライクなデータセットおよびBLOBストレージ。

    代わりに使わないもの: 生のpickle、CSV、JSONダンプ、手動管理のParquetフォルダ、またはブロブを保持するためだけに設定されたデータベース。

    Python ドキュメント

  • migretti

    CLI

    SQLファーストのPostgreSQLマイグレーションCLI:作成、適用、ロールバック、スカッシュ、シード。唯一の公認PostgreSQLマイグレーションツールです。

    代わりに使わないもの: alembic、flyway、yoyo、またはORMの自動マイグレーションです。この社内ルールはすべてのPostgreSQLスキーマに適用されます。

    対象: PostgreSQL

    CLI GitHub

  • supervice

    Pythonライブラリ

    ワーカー、デーモン、キューコンシューマー向けの依存関係ゼロの非同期プロセススーパーバイザーです。ヘルスチェックを実行し、グループを管理し、プロセスがクラッシュした際には再起動します。

    より適する場合は、プレーンなsystemdまたはKubernetesも許容されます。

    Python

  • bulkman

    Pythonライブラリ

    障害が発生した依存関係の影響範囲を限定するバルクヘッドと並行性分離。

    ハウスルールとして、常にcircuit_breaker_enabled=Falseを設定します。分離はbulkmanが処理し、サーキットブレイクはresilient-circuitが担います。

    補完: resilient-circuit

    Python

  • resilient-circuit

    Pythonライブラリ

    信頼性の低い呼び出しに対するサーキットブレーキング、バックオフを伴う再試行、フェイルセーフまたはフォールバック処理を提供します。分離のためにbulkmanと組み合わせて使用します。

    代わりに使わないもの: tenacity、pybreaker、または自作のリトライループ。

    Python

  • scriptplan

    エンジン + CLI製品

    リソース計画およびスケジューリング用のTaskJuggler互換(.tjp)エンジンです。時間経過に伴う人員や機械、依存関係、カレンダーを処理し、ガント出力を生成します。

    代わりに使わないもの: スプレッドシートまたは場当たり的な日付計算。

    CLI GitHub

07 開発プロセス

  • issuedb-cli + EARS

    CLI

    EARS仕様、永続メモリ、教訓を備えたリポジトリ別チケットトラッカー。すべてのエンジニアリングリクエストは、必須のopen → in-progress → closedライフサイクルに従います。

    エンジニアリングリクエストはすべて、チケット内およびリポジトリのSPECS/ディレクトリ下のコピー内にあるEARS仕様となります。

    代わりに使わないもの: 未追跡のTODO。

    CLI

08 推奨スタック

  • Prism

    ホスト型サービス製品

    OpenAIおよびAnthropic互換のLLMゲートウェイで、複数のベンダーを1つのモデル名の背後に配置できます。当社のデプロイメントはフェイルオーバーなしで単一の上流プロバイダーにルーティングしており、ツール内のモデル呼び出しに使う社内標準のLLMプロバイダーです。

    REST APIリファレンス

  • PostgreSQL 推奨のリレーショナルストアです。
  • Redis キャッシュ、キュー、ファンアウトに推奨です。

ツールの選択

ニーズを明確にし、それを担うツールを使用し、社内ツールがすでにカバーしている関心事を再実装しないでください。

各エンジニアリングニーズに使用するツールと、その代わりに決して使用してはならないもの
ニーズ使用使用しないでください
ログイン / OAuth / 「これは誰か?」Identity独自の認証を書くこと
ロール、権限、「XはYを実行できますか?」AuthRBACテーブル、Casbin、OPA
クォータ、レート制限、予算、ティア、メータリングTokenGateRedisカウンター、リミッターライブラリ
メール送信、テンプレート、キャンペーンMail APIsmtplib、SES/Mailgun
別のプラットフォームのチームとの対話agent-mail相手のリポジトリやトラッカーを編集すること
信頼できないコードや生成されたコードの実行RunFlowローカルdocker、CIランナー
決定論的パイプライン/DAG/ETLRunFlowまたはstabilizeAirflow、Prefect
エージェント型(LLM駆動)ワークフローHighwayTemporal、カスタムループ
人による承認/サインオフFutexSlackでの質問、承認テーブル
PostgreSQLのスキーママイグレーションmigrettialembic、flyway、yoyo
データセット、blob、録画、Parquetdatashardpickle/CSVダンプ、BLOBストアとしてのDB
ワーカープロセスの監視supervicenohup、手書きのrespawn
バルクヘッド / 並行性の分離bulkman(ブレーカーOFF)アドホックなセマフォ
サーキットブレーキング / リトライ / フォールバックresilient-circuittenacity、pybreaker
リソース / プロジェクトのスケジューリングscriptplanスプレッドシート
チケット、仕様、要件issuedb-cli + EARS未追跡のTODO
ツール内でのLLM呼び出しPrismベンダーごとのSDKとキーがツール全体に分散

エンジニアリング手法

3つの方法論は、何を構築するかにかかわらず、すべてのリポジトリに適用されます。

  • EARS + issuedbワークフロー

    すべてのエンジニアリングリクエストはEARS仕様およびissuedbチケットになり、仕様はリポジトリのSPECS/ディレクトリにコピーされます。チケットは「open」から「in progress」、「closed」へと移行します。

  • TRUST5

    仕様駆動で品質ゲートを備えたLLMコード生成。自己修復、範囲を限定した検証/修復ループ、重み付きゲート、Oracle問題の緩和を伴います。

  • ミッションクリティカルな監査

    反証による監査:チェックは製品自身のインターフェースを通じて実行され、検出事項はライブで再現され、各プローブは次のラウンドに向けた実行可能なベースラインとして保持されます。

すべてのツールに適用されるルール。
  • プロダクト自身のインターフェースを通じて検証します。状態はそのAPIまたはCLIを通じて読み取り、確認や修正のためにデータベースへクエリや書き込みをしないでください。
  • プローブの陰性結果を信頼する前に、すべてのプローブを既知の陽性ケースに向けてください。
  • 実際に検証したものについてのみ準備状況を主張し、未検証のパスを明示してください。
  • すべての上限を両方向でテストします。超過時にはブロックし、適切なタイミングで再開する必要があります。

これらのプラットフォーム上に構築された製品

これらのプラットフォームは、当社が提供するすべての基盤となっています:Highway、MailApi、RunFlow、Futex、reTunnel、Ledger、RODMENA L10n、TokenGate、AgentBus、RODMENA ID、Auth、Prism、pdfapi、Container Registry、RODMENA CI、Uptime.Systems、Trust5、RED9、Graphviz Provider、Steward、Tollgate、Haven、RODMENA LRS、RODMENA cmi5、Vellum、supervice、datashard、ScriptPlan、Stabilize、Trace、Provenance、Knowledge base。また、会社の運営も担っています。