Hi all, Below is a summary of the informal Unomi developer sync held on April 10, 2025. The discussion focused on progress with Unomi 3, clustering, migration, testing infrastructure, and ideas to improve resilience and contribution workflows.
As a reminder, no decisions were made during this call. All proposals and contributions must be brought forward and discussed on this mailing list in accordance with ASF governance. ⸻ Apache Unomi Developer Sync – Informal Summary Date: April 10, 2025 ⸻ Tracker Release Clarification • A new contributor asked whether there were any blockers to releasing the Unomi Tracker. • No specific blockers were raised during the call. • Reminder: any release must be formally proposed and approved on this list. ⸻ Release Automation • The team discussed improving the release process. • While many steps can be automated, artifact signing must still be done manually by a committer, in compliance with ASF policy. • It was suggested to contact Apache Infra to clarify the boundaries for release automation and secure key usage. ⸻ Docker-Based Test Infrastructure (Generalization Idea) • An idea was shared to generalize test infrastructure using Docker, replacing specific solutions like Maven plugins that launch Elasticsearch. • This approach could support a broader range of testing types, such as API and integration tests, with greater flexibility and environmental consistency. • This remains an unimplemented idea for future development. ⸻ Documentation • A ticket should be created to automate the generation of Unomi’s site documentation. • A broken link to the 2.6.x documentation was reported and should be tracked as a separate issue. ⸻ Clustering Overhaul • The clustering system has been rewritten to use Elasticsearch, removing Hazelcast and Karaf Cellar. • Nodes ping Elasticsearch and store timestamps to indicate availability. • The API remains compatible but now includes version metadata for nodes. • These changes will be contributed by Serge Huber once the Unomi 3 integration tests are stable. ⸻ Unomi 3 Development & Integration Tests • Work is underway to stabilize Unomi 3, with Serge currently the main contributor. • Progress continues despite long test/debug cycles. • Updates include: • A revamped progress reporting system for import/export operations, including start, end, and progress listeners. • Initial multi-tenancy support, based on tenant-specific key isolation. • Cleanup of previously private/proprietary code, making the fork ready for contribution back to the community. • It was suggested that once tests stabilize, contributions should be split into smaller PRs to simplify community review (e.g., clustering, data model, multi-tenancy). ⸻ Breaking Changes • Some breaking changes are expected, particularly in authentication and schema definitions. • The team is taking care to minimize disruption and ensure clear upgrade paths. ⸻ Migration Challenges • Migration tooling is evolving to support the new model but still presents challenges: • Reindexing time for large datasets can exceed 30 hours. • Elasticsearch mapping/type conflicts may occur. • Some tasks are incorrectly reported as successful even when errors are present. • Discussed solutions: • A meta-migration script to cover multiple version upgrades. • Event capture/replay strategies to avoid data loss. • Temporary parallel system operation with proxy-based routing. ⸻ Event Loss & Recovery • A bug was identified where failures in loading scopes or rules could result in a permanent crash of the event-processing thread, silently dropping events. • Unomi 3 introduces a resilient scheduler that ensures the system continues processing even if certain components fail. • The group discussed implementing a queue or retry mechanism, with ideas like SMTP-style exponential backoff. • This may be part of core functionality or an optional/commercial extension. ⸻ Other Noteworthy Topics • Multi-tenancy strategy: smaller tenants may share indexes; larger tenants could be split out to separate infrastructure as needed. • Tenant migration tooling was discussed conceptually — this remains an idea for the future, not yet implemented. • The most notable known difference between Elasticsearch and OpenSearch support is the index rollover behavior, alongside the fact that the Elasticsearch version in use is outdated, while OpenSearch support targets a modern version. • Brief mention of cleaning up deprecated features, including a potential removal of OGNL scripting. ⸻ ✅ Next Steps (For Discussion on This List) • Open issues for: • Broken 2.6.x documentation link • Site documentation automation • Continue stabilizing Unomi 3 and integration testing • Plan to split contributions into smaller PRs once ready • Explore formalizing event recovery strategies • Bring any proposals or feature ideas to this list for discussion ⸻ Thanks to everyone who participated. Feel free to respond here with any additions, clarifications, or proposals. Best regards,