Hi everyone, As already discussed with some of you, I started a complete refactoring of Unomi, not from a use case/logic perspective but more from a technical standpoint.
IMHO, Unomi is a bit mess today, and it’s normal because we wanted to implement some features quickly. Now that we are heading to Unomi 2.x, I think it’s time to do kind of cleanup. Basically, here’s what I started: - Structure/Code: more fine grained modules/bundles to have a way more clean features and structure - Services: introduce more Unomi services (persistence, etc), to have a better decoupled approach, with whiteboard to have service only when required (for instance Cellar). Each service should have a REST (NOT GraphQL) endpoint and a MBean allowing users to easily integrate with their own applications - Extensions: we can provide more extension (like Kafka injector) - Distribution: remove of kar to use custom Karaf distribution, remove of Unomi:start replaced by boot features, improved docker - Commands: cleanup on shell commands, adding new ones - Metrics/MBeans: it’s something I already started, but as more metrics (dropwizard/codehale) and integrate Decanter (allowing us to easily plug with prometheus, etc) - Examples: we need more "concrete" examples describing "classic" use cases. CDP is abstract for most of our users and they don’t know exactly what they can do with unomi. I’m moving forward on a branch to better explain what I have in mind. I think it’s important: 1. For us, as it would simplify the maintenance 2. For community, as people will more easily join the project and submit contributions Thoughts ? Regards JB
