Hello all, We’re pleased to announce the release of Clouseau 3.0.0, a major update to the Lucene-based full-text search engine that integrates with CouchDB via Dreyfus. While Clouseau has always been considered a plugin for CouchDB, it is not part of the Apache CouchDB project itself. It is maintained by the IBM Cloudant team, who have focused on delivering a modernization that preserves the same functionality and API while improving maintainability. The previous implementation served well for years but relied on an unsupported language and outdated runtime components. This release addresses long-standing challenges with outdated components and operational risk, ensuring a reliable foundation for the future.
# What’s New - Modern Foundation - The legacy Scala code running on Java 8 has been replaced with a newer Scala running on Java 21. Communication between Erlang and the JVM now uses the fork of jInterface (part of Erlang/OTP), eliminating long-standing maintenance of unsupported Scalang library. Deprecated asynchronous scheduler is replaced with modern async framework. - Preserved Compatibility - Despite the architectural changes, the new version maintains existing APIs, Lucene integration, and on-disk index formats. This means no re-indexing, no client-side changes, and a seamless rollout. # Engineering Highlights - Re-implement Scalang abstractions using https://zio.dev/ - Implemented actor framework with API similar to erlang's gen_server - Implement Erlang Distribution Protocol using jInterface. - Extended jInterface with full support of monitors. - Greatly improved test coverage. - Better introspection capabilities (via remsh and erl_call) - Source code is available under Apache 2.0 at cloudant-labs/clouseau. - clouseau-ctr application to simplify operations. # Updated components - Java - JDK 7 updated to JDK 21.0.12 - Scala - 2.9.1 updated to 2.13.16 - com.yammer.metrics - replaced with zio.metrics 2.0.0 - jetlang - 0.2.12 replaced with zio 2.1.16 - scalang 2.9.1 - removed from the stack - org.slf4j 1.7.32 - replaced with zio.logging 2.5.0 and tinylog 2.7.0 - commons-configuration 1.8 - replaced with zio.config 4.0.4 Feedback and questions are welcome. If you’d like to review the code or learn more about the design decisions, please check out https://github.com/cloudant-labs/clouseau repository. Thanks, ILYA Khlopotov
