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


Reply via email to