Rearchitecture Cont: Planning Rearchitecture Implementation (TECH)
Description: Steps to move from current code base to proposed design
Leads: Karl
Rapporteur/Notetaker: Rich
Audio recording: Architecture Discussions d2s2.mp3
Notes from Session:
Intro
(Short discussion on how to use this session's time. Karl: should define timeline and funding for architecture work)
Ashraf describes a few pain points, and asked the group for potential design solutions:
Facility Edition in Zambia: Offline Java swing app that needs to sync monthly to OpenLIS via REST.
Be more sustainable (in terms of cost) to transition this to a tablet, but needs to work offline.
Josh mentions concern that current REST "lookup" APIs expose entire objects, concern the data may change overtime and break consumers
Mused on OpenLMIS versions running on tablets, disconnected desktops, etc.
ILS Gateway. This solution required SSO. What is a preferred/good way to implement SSO?
Does HIE recommend anything?.
This is a feature request, but ideally something defined by a larger "community of communities" (i.e. OpenHIE), otherwise go with standard mechanism like OAuth. This is a good question for Dykkie.
Architecture: steps to the future
What are steps to take?
What are migration/upgrade paths, even if we completely rewrote the application?
Or, look at each pain point and come up with solution? E.g. for database migrations, we could modularize this much better to support migrations, extensions, etc.
Incremental approach rearchitecture: Could take a stable module, not under development, and apply new architecture to it as a case study.
Discussion, what module or feature can we rearchitect as a vertical slice?
Notifications (existing email and SMS) is a candidate, may be lacking in "domain".
Reporting module: a rewrite could be advantageous (but does that hit problems like defining a domain model?)
Much longer discussion on reporting commences…what can we provide to help projects get the reports they need?
Was Jasper not enough? (a decent third party BI suite could provide dashboards for OpenLMIS, and maybe lose the 12k lines of code for existing reports)
Reset: what is the problem/problems we're trying to solve
Is it, "What does the next implementation do?"
More Path-Forward Proposals
TW proposes taking a TW pair to create a slice of new architecture functionality, then share it, in person, with JSI and TW.
TW needs to secure funding
Would need some level of doc
Group should have some review/input before spike happens
Ashraf: should review other extension services/techniques
E.g. OpenMRS or OpenERP. These offer additional benefits
Can work on 2.0 stabilization in parallel, a way to establish a master branch
Work off the Code State list of items
Point on "plugins" - popular systems like OpenERP have a large number of implementers, deployments, etc. and sustains a vibrant plugin marketplace. This is not the case for OpenLMIS - we don't anticipate that many deployments, not enough for a "full" plugin architecture.
Should focus on establishing domain model first
OpenLMIS: the global initiative for powerful LMIS software