Hi Mike, maybe some input from my experience is useful. Within our Karaf cluster OSGi services are grouped by functionality like one Karaf node for Mariadb facades, one for Oracle facades, two for integration projects, one facade for ERP interaction etc... The Karaf is a homebrew dynamic one covering the basics every node needs to have in the cluster, like DOSGi (Cellar). The nodes with the specific functionalities build on a node specific basic multi maven module project, inheriting from the home-brew Karaf pom. This basic project brings the BOM for the functionality for that node like Aries JPA, Hibernate, MariaDB driver and PAX JDBC for the MariaDB node. Every MariaDB database then gets its own multi maven module facade project building on that basic project for the node. This makes it easy extendable and up-gradable per project / facade / database / node adding more and more methods to the facade as we go along. Think Symantic versioning. Because our backend nodes do not have WAN access every multi maven module project gets packaged in KAR files containing al the jar files needed for installment. The one disadvantage is that the Karaf maven plugin packaging the KAR file cannot extract specific dependency parts of other feature XML files like the camel-ftp feature. So this is a manual copy past action. Karaf Cellar builds the cluster on runtime and besides cluster provisioning, exposes specific marked services within the cluster as if they are local to every node on the cluster (DOSGi), even the event admin can send events into the cluster. Cron-Jobs are mostly used within our integration projects on the integration nodes and that is where we use Apache Camel a lot, having all the EIP functionality you can wish for and a powerful DSL.
Hope this inside view helps and improvements and discussions of my architecture are always welcome. -- Sent from: http://karaf.922171.n3.nabble.com/Karaf-User-f930749.html