You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@couchdb.apache.org by ILYA Khlopotov <ii...@apache.org> on 2025/12/02 22:16:27 UTC
Clouseau 3.0.0 Released – Modernized Search Component for CouchDB
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
Re: Clouseau 3.0.0 Released – Modernized Search Component for CouchDB
Posted by Jan Lehnardt <ja...@apache.org>.
Congratulations, Ilya & team, this surely was a herculean task.
Best
Jan
—
> On 2. Dec 2025, at 23:16, ILYA Khlopotov <ii...@apache.org> wrote:
>
> 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