2 ポイント 投稿者 click 2026-01-04 | まだコメントはありません。 | WhatsAppで共有

Durable Streams を見て良いプロジェクトだと思い、自分のメイン言語である Java の実装も作ってみました。

主な特徴

  • 特定ライブラリへの依存を最小化: できるだけ特定のフレームワークやライブラリに依存しない構成にし、可能な限りカスタマイズできつつ、基本実装も提供する形で作りました。
  • Virtual thread 最適化: Java 17 以上で利用可能ですが、Java 21 以上で Virtual thread と組み合わせて使うことをおすすめします。
  • 主要 JVM フレームワーク統合: Spring MVC、Spring WebFlux、Micronaut、Quarkus、Ktor 向けのアダプターを提供します。各フレームワークに合わせたリクエスト/レスポンス変換と SSE 処理を内蔵しているため、数行の設定だけですぐに利用できます。
  • プロトコル適合性テストに合格: durable-streams リポジトリで提供される 131 個の適合性テストをすべて通過しました。

注意事項

ファイルシステムベースのストレージは、メタデータ保存用として Rocksdb を使用します。Rocksdb は最近、すべての主要 OS のバイナリを含む fat jar を提供する方式から、各 OS 向けに最適化された jar を classifier で直接選択する方式に変わりました。
そのため、ファイルシステムベースのストレージを使用する場合は、rocksdb を依存関係に直接追加する必要があります。

gradle

dependencies {  
    implementation("io.durablestreams:durable-streams-server-core:<version>")  
    runtimeOnly("org.rocksdb:rocksdbjni:10.4.2:linux64") // or win64/osx  
}  

maven

<dependency>  
  <groupId>org.rocksdb</groupId>  
  <artifactId>rocksdbjni</artifactId>  
  <version>10.4.2</version>  
  <classifier>linux64</classifier>  
  <scope>runtime</scope>  
</dependency>  

まだコメントはありません。

まだコメントはありません。