HackerNews

イベントクエリ言語EventQLの設計

Designing EventQL, an Event Query Language

https://docs.eventsourcingdb.io/blog/2025/10/20/designing-eventql-an-event-query-language/


EventQLは、EventSourcingDBのために設計されたイベントクエリ言語です。この言語は、事前に定義されたプロジェクションでは対処できないアドホックな質問に応えるために開発されました。初めから、EventSourcingDBは他のデータベースに依存せず、自らのストレージエンジンを構築したため、従来のSQLを使用することには問題が多くありました。特に、SQLはリレーショナルデータベース用に進化しており、イベントの追加のみのログには適さない概念的不一致がありました。そのため、イベントストリームを自然に探索するために、イベントからのデータを基にする構文を採用しました。クエリは「FROM e IN events」という形式で始まり、最後に「PROJECT INTO」で出力を指定します。この設計により、何が重要であり、どのようにデータが処理されるかを明確にし、開発者が直感的に理解できるようになっています。