Show HN: DBOSify - PostgreSQL に基づいて構築されたTemporalの即座に置き換え可能な代替ソリューション

2026/06/25 2:20

Show HN: DBOSify - PostgreSQL に基づいて構築されたTemporalの即座に置き換え可能な代替ソリューション

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

DBOSify は、別々の Temporal サーバーが不要になるようにすることで、Temporal Python SDK のより単純な代替手段を提供します。代わりに、DBOS Transact を通じて標準の PostgreSQL データベースを所有し、すべてのワークフローの状態、耐久性、および回復を担当させます。仮想イベントループ上の決定論的インタープリターを利用することで、このシステムは非決定的なアクションが Postgres 内で安全にチェックポイント化されることを保証します。シグナル、キャンセル、更新、再試行といった重要な操作は、LISTEN/NOTIFY メカニズム経由で配信される耐久メッセージとして機能し、クラッシュや再起動後もワークフローが正確に 1 回のみ実行されることを保証します。

DBOSify を採用するには、標準の

temporalio
インポートを
dbosify
で置き換え、特定のデータベース接続文字列(
DBOS_SYSTEM_DATABASE_URL
)を設定する必要があります。 namespaces を個別のデータベーススキーマにマッピングすることで、Python 専用アプリケーションのインフラストラクチャ複雑性を大幅に削減しますが、現在、外部ツールとの互換性が不足しています。gRPC 接続がないため、非-Python SDK はシステムと統合できず、ワークフローは標準的な Temporal ユーティリティ(Web UI や CLI など)ではなく DBOS の内部 API を介して管理されます。

Text to translate:

DBOSify offers a streamlined alternative to the Temporal Python SDK by eliminating the need for a separate Temporal server. Instead, it leverages a standard PostgreSQL database via DBOS Transact to handle all workflow state, durability, and recovery. By utilizing deterministic interpreters on a virtual event loop, the system ensures that non-deterministic actions are safely checkpointed within Postgres. Critical operations like signals, cancellations, updates, and retries function as durable messages delivered via LISTEN/NOTIFY mechanisms, guaranteeing workflows execute exactly once even after crashes or restarts.

Adopting DBOSify requires replacing the standard

temporalio
import with
dbosify
and configuring a specific database connection string (
DBOS_SYSTEM_DATABASE_URL
). While this approach significantly reduces infrastructure complexity for Python-only applications by mapping namespaces to distinct database schemas, it currently lacks compatibility with external tools. The absence of a gRPC connection means non-Python SDKs cannot integrate with the system, and workflows are managed through DBOS's internal APIs rather than standard Temporal utilities like its Web UI or CLI.

本文

DBOSify:Postgres をバックエンドにした Temporal Python のドロップイン代替製品

DBOSify は、Temporal Python 向けの代替ライブラリです。Postgres データベース(DBOS Transact を経由)を Temporal サーバーの代わりに利用することで、サーバーなしで永続的なワークフローを実行可能にします。

実装と機能

以下の機能を Temporal サーバーなし で提供します:

  • Everlasting ワークフロー
  • アクティビティ
  • シグナル
  • アップデート
  • リトライ
  • 回復(Recovery)

インストールと接続手順

temporalio
dbosify
に置き換えるだけで利用可能です。ワーカーとクライアントは Postgres データベース に直接接続します。

コード例:使用方法

以下のコードにより、Postgres への接続文字列を設定し、ワークフローを実行します。

import asyncio
import os
from datetime import timedelta

# DBOSify のインポート
from dbosify import activity, workflow
from dbosify.client import Client
from dbosify.worker import Worker

# Postgres 接続文字列の設定
DB_URL = os.environ.get("DBOS_SYSTEM_DATABASE_URL")


@activity.defn
async def compose_greeting(name: str) -> str:
    """アクティビティ定義例"""
    return f"Hello, {name}!"


@workflow.defn
class GreetingWorkflow:
    """ワークフロー定義例"""

    @workflow.run
    async def run(self, name: str) -> str:
        return await workflow.execute_activity(
            compose_greeting, 
            name, 
            start_to_close_timeout=timedelta(seconds=10)
        )


async def main() -> None:
    # ワーカーの作成と起動
    worker = Worker(
        DB_URL,
        task_queue="greetings",
        workflows=[GreetingWorkflow],
        activities=[compose_greeting],
    )
    
    async with worker:
        async with await Client.connect(DB_URL) as client:
            # ワークフローの実行
            result = await client.execute_workflow(
                GreetingWorkflow.run, 
                "World", 
                id="greeting-1", 
                task_queue="greetings"
            )
            print(result)  # 出力:Hello, World!


if __name__ == "__main__":
    asyncio.run(main())

動作原理

DBOSify は、Temporal ワークフローを Postgres をバックエンドとする DBOS ワークフロー として実行します。

  • 決定論的な解釈器: イベント到着までのみ進行する仮想イベントループ上でワークフローを実行(メインコルーチン、シグナル、アップデート、クエリハンドラーを含む)。
  • チェックポイント化: DBOS ステップと通信プリミティブを用いて、すべての非決定的動作はワークフローの観察前に Postgres に保存されます。

具体的な実装詳細

コンポーネント実装方法
アクティビティ完了時にチェックポイント化する DBOS ステップとして実装
タイマー永続的スリープ(durable sleeps)として実装
シグナル/アップデート/キャンセルPostgres を経由した LISTEN/NOTIFY による永続メッセージング
回復(Recovery)記録されたチェックポイントからの再実行と再生(replay)により、中断箇所から正確に再開される仕組み
ネームスペース独自の Postgres スキーマへのマッピング
Client / Workerそれぞれ DBOS クライアント・ランタイムをラップする構成

テスト戦略

Temporal のドロップイン代替製品であることを検証するため、以下の手法を採用しています:

  • ユニットテストおよび統合テストの移行: 関連するすべての Temporal Python テストを Port
  • 機能検証: Temporal Python サンプルアプリケーションをリポジトリ化して、真の互換性を確認
  • 回復性テスト: 特に 決定論的な失敗回復 を検証するための「殺処分と回復(kill-and-recover)」テストに重点
  • API 互換性: 公開 API の同一性を機械的に保証する署名対応性テスト(文書化された例外を除く)

制限事項

DBOSify が提供しない機能や、注意点です:

  • ネットワークプロトコルの互換性なし

    • gRPC のワイヤーレベルでの互換性がありません。
    • 他の言語の Temporal SDK は接続できません。
    • Python アプリケーション向けであり、Temporal サーバー全体を置き換えるものではありません。
  • エコシステムとの非互換性

    • Temporal ウェブ UI
    • temporal CLI
    • tctl
      (Command Line Tool)
    • これらは利用できず、DBOS の管理 API および Conductor を使用します。

アーキテクチャの詳細や機能互換性については、公式ドキュメントを参照してください。

同じ日のほかのニュース

一覧に戻る →

2026/06/27 2:06

次世代モデル「GPT‑5.6 Sol」の事前公開

## Japanese Translation: OpenAI は、GPT-5.6 シリーズの限定プレビューを発表しました。本シリーズには、以下の 3 つの専用モデルが含まれます:Sol(最も堅牢な安全スタックを備えたフラグシップモデル)、Terra(バランス型/コストパフォーマンス型)、Luna(高速型/最低コスト型)。リリースでは、高リスク向けアプリケーションにおけるセキュリティと論理処理に重点を置き、Terminal-Bench 2.1 でコーディングに関する業界最高水準のベンチマークを設定し、GeneBench v1 でゲノム解析分野でも同様に最良の結果を示しました。Sol モデルは特筆すべき点として、「ultra mode」を搭載しており、サブエージェントを活用して複雑なタスクの処理を加速させるとともに、ExploitBench² において優れた結果を達成しています(同時に自律的に全チェーンエクスプロイトを生産することには達しておらず、すなわち Cyber Critical の閾値を越えていません)。Sol は 70 万以上の GPU タイムに及ぶ自動化および人間によるレッドチーム検証を通じて開発され、リアルタイムクラシファイアやアカウントレベルでの審査など、多層的なサファガードスタックを有しています。一般公開前には、アクセスは信頼されたパートナーと米政府関係者に限られ、7 月に専用 Cerebras ハードウェア上で選定顧客向けに展開される予定です。利用者からはキャッシュ読み取りに対する大幅な割引を通じてコスト削減を提供する差別化された価格設定層が提供されますが、初期段階ではフル API アクセスには制限があります。結果として、このリリースは高い機能性と厳格な安全プロトコル、そして明確なパフォーマンス・コストバリエーションを両立させた責任ある AI 導入のための新たな業界基準を確立しました。

2026/06/27 12:30

ワードスター:作家のためのワープロソフト(1996)

## Japanese Translation: Robert J. Sawyer は、確立されたフィクション作家が現代のデジタル時代においても 1978 年のテキストエディタ「WordStar」を使い続けることを情熱的に提唱している。Microsoft Word に代表される現代的なワープロソフトは派手なグラフィックや複雑なメニューを提供するが、執筆モードと編集モードの間でユーザーが精神的にギアを切り替えることを強制し、創造性を阻害することがしばしばある。これに対し、WordStar の安定したクラッシュフリーな環境は、深みのある創造的フローにとって不可欠な妨げのない空間を提供する。このソフトウェアは効率的な「コントロールキー」インターフェースに依存し、物理的な「手書きの頁」を模倣することで、作家が認知的不中断のまま自由にナビゲートすることを可能にしている。そのエルゴノミクス設計はプロのタッチタイピストを支え、カスタマイズ性はユーザーに適応させるため而非公式なワークフローを変えることを求める。このアプローチは、アーサー・C・クラークやジョージ・R・R・マーティンといった伝説的な作家からの称賛を得ており、彼らは新機能よりも安定性を重視している。現代的なアプリケーションによる精神的疲労を避けることで、本物の作家は草稿と作品の精査の間で流体様なる連続性を維持でき、古典的な技術が専門家のサイエンスファンタジー書きの要件に独特に適していることを示している。 ## Text to translate: Robert J. Sawyer passionately argues that established fiction authors should continue using WordStar, a robust text editor from 1978, even in the modern digital age. While contemporary word processors like Microsoft Word offer flashy graphics and complex menus, they often disrupt creativity by forcing users to switch mental gears between writing and editing modes. In contrast, WordStar's stable, crash-free environment provides a distraction-free space essential for deep creative flow. The software relies on an efficient "Control-key" interface and mimics a physical "long-hand page," allowing writers to navigate freely without cognitive interruption. Its ergonomic design supports professional touch typists, and its customizability adapts to the user rather than demanding they change their workflow. This approach has earned praise from legendary authors like Arthur C. Clarke and George R.R. Martin, who value stability over new features. By avoiding the mental fatigue of modern applications, serious writers can maintain a fluid continuum between drafting and refining their work, proving that classic technology remains uniquely suited for the demands of professional science fiction writing.

2026/06/25 13:06

旧ハードウェアでの Linux 運用:完全リバイバルガイド

## Japanese Translation: Linux ディストリビューションは、TPM 2.0 や低容量 RAM など過時硬件要件による電子廃棄物を解決する、Windows 11 の代替手段として有効な選択肢を提供します。Windows 11 はアイドル状態でも 3〜4GB のメモリで起動可能ですが、軽量オプションは遥かに少ない消費量を実現します。例えば、Xfce を使用した Ubuntu は約 650MB を、antiX(約 256MB)や Puppy Linux などの超軽量ディストリビューションは最低 256MB のマシンでも動作可能です。リソースが限られているユーザーには、2GB より少ない RAM のシステムには antiX が推奨され、2〜4GB の場合では Lubuntu(アイドル時約 480MB)、4GB 以上のマシンでは Linux Lite(アイドル時約 650MB)が適しています。なお、BunsenLabs Carbon などがサポートを終了する 2026 年 2 月には、古くからの 32 ビットハードウェアは互換性問題に直面します。 適切な OS を選ぶだけでなく、戦略的なアップグレードと調整により性能を大幅に向上させることも可能です。機械式ハードドライブを SATA SSD に置き換えることで、起動時間を 45 秒以上から 18 秒未満に短縮できます。上級ユーザーは診断のために `free -h`、`lscpu`、`lsblk` などのコマンドを使用し、zram 圧縮を有効化して RAM 容量を増大させるようにシミュレートし、swappiness 設定を 10 に下げて古いドライブへの磨耗を軽減し、不要なサービス(例:bluetooth、cups)を無効化し、キャッシュの無効化や広告ブロッカーを活用してブラウザのメモリ使用量を最適化するなどの措置应采取します。これらのステップにより、高価な新ハードウェア購入なしでレガシーマシンも効果的に動作させることが可能になります。

Show HN: DBOSify - PostgreSQL に基づいて構築されたTemporalの即座に置き換え可能な代替ソリューション | そっか~ニュース