ผมเห็น Durable Streams แล้วคิดว่าเป็นโปรเจกต์ที่ดี จึงลองสร้างอิมพลีเมนเทชันสำหรับ java ซึ่งเป็นภาษาหลักที่ผมใช้งานขึ้นมาด้วย

คุณสมบัติหลัก

  • ลดการผูกติดกับไลบรารีเฉพาะให้น้อยที่สุด: ออกแบบให้พึ่งพาเฟรมเวิร์กหรือไลบรารีเฉพาะให้น้อยที่สุด พร้อมทั้งเปิดให้ปรับแต่งได้มากที่สุด และยังมี implementation พื้นฐานมาให้ใช้งาน
  • ปรับให้เหมาะกับ Virtual thread: ใช้งานได้ตั้งแต่ Java 17 ขึ้นไป แต่แนะนำให้ใช้ร่วมกับ Virtual thread บน Java 21 ขึ้นไป
  • ผสานรวมกับเฟรมเวิร์กหลักบน JVM: มีอะแดปเตอร์สำหรับ Spring MVC, Spring WebFlux, Micronaut, Quarkus และ Ktor โดยมีการแปลง request/response และการจัดการ SSE ที่เหมาะกับแต่ละเฟรมเวิร์กมาให้ในตัว ทำให้เริ่มใช้งานได้ทันทีด้วยการตั้งค่าเพียงไม่กี่บรรทัด
  • ผ่านการทดสอบความสอดคล้องของโปรโตคอล: ผ่านการทดสอบความสอดคล้องทั้ง 131 รายการที่มีให้ในรีโป durable-streams

ข้อควรระวัง

สตอเรจแบบอิงไฟล์ซิสเต็มใช้ Rocksdb สำหรับเก็บเมทาดาทา โดย Rocksdb เพิ่งเปลี่ยนจากรูปแบบที่แจกจ่าย fat jar ซึ่งรวมไบนารีของระบบปฏิบัติการหลักทั้งหมด มาเป็นรูปแบบที่ให้เลือก jar ที่ปรับแต่งตามแต่ละระบบปฏิบัติการผ่าน classifier โดยตรง
ดังนั้น หากต้องการใช้สตอเรจแบบอิงไฟล์ซิสเต็ม คุณจะต้องเพิ่ม dependency ของ 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>  

ยังไม่มีความคิดเห็น

ยังไม่มีความคิดเห็น