2. Agenda
❏ Phase 1 - Modularization
❏ Phase 1.1 - API vs Internal
❏ Phase 2 - Spring and Plugins
❏ Phase 3 - Interceptors & Event Sourcing
❏ Phase 4 - Preparing Archetypes
❏ Phase 5 - SDK and JS-Library
❏ Q & A | Open Discussion
3. Who am I
❏ Volunteer for Mifos since early 2014.
❏ Sr. Software Engineer | Architect @ iTAC a MES vendor making the
Internet of Things a reality for the Industry.
❏ Lives in Nickenich, Germany
❏ markus.geiss@live.de
❏ me @ LinkedIn
YAGNI likes a DRY KISS
7. To Do’s
❏ Separate API
❏ REST Resource
❏ Command Model
❏ Query Model
❏ Service Interfaces
❏ Separate Internal
❏ Service Implementation
❏ Command Handler
❏ Repositories
❏ Module Configuration
9. To Do’s
❏ Main Spring Context provided via Infrastructure Module
❏ Spring Java Config for Modules
❏ Naming Convention
❏ e.g. org.mifos.module.*.config
❏ Spring’s build in Class Path Scanning
❏ Use annotations to drive DI
❏ Component scan configured in module configuration
❏ Add only module APIs as a compile time dependency
❏ Internals will be on the runtime class path
13. To Do’s
❏ Maven like archetype for Gradle
❏ currently in specification
❏ Include
❏ Infrastructure dependency
❏ Testing framework
❏ Project layout
❏ Class skeletons for configuration
❏ Ability to run | test drive in process
❏ Embedded Container (e.g. Jetty)
❏ Embedded Database (e.g. H2)
15. To Do’s
❏ SDK
❏ Bundle APIs and Archetypes
❏ Provide proper documentation
❏ at least JavaDoc for all API components
❏ a few How To’s
❏ Create a JS-Library
❏ Provide proper documentation
❏ a few How To’s
❏ jsfiddle?