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

Reply via email to