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