C3 allows Service and Events oriented software architectures development, with explicit contract. The framework overload, for an already existing interface/implementation splitted conception, is very light.
- explicit dependencies injection that aims to avoid boiler plate code or external XML files that generally achieved that function
- pure abstract contract (formerly java interface) / implementation (formerly concrete java classes that implements the contract) splitted for better architecture driven development
- dependencies inversion
- function complexity isolation: split complexity into one or more component
- free component grain size choice: coarse grained component are easier to use, but finest grained component are best for reuse
- component and application life cycle available to manage application start/stop phases
- and more ...
The C3 main advantage is to propose both Service AND Events ports (or facets), with all the architectural concepts they propose, on the same contract level: events is not an add-on to a service framework. That allows to develop simple or complex systems that generally need the SOA (Service Oriented Architecture) and EDA (Event Driven Architecture) paradigms.
There is no XML required, all is in java code, and a single jar c3.jar is mandatory to develop a C3 application.
Try the tutorial available under download page.
Enjoy and have fun!Ch. Huntzinger