2019-01-23 Architecture and Framework Meeting

Agenda

Conceptual (cfr. wiki)

  • About micro-services
    • Load / Scalability is not primary issue
    • Modularity is primary issue, but can be achieved in other ways
    • Complexity of micro-services (for example deployment) 
  • About NoSQL database
    • Suggestion of keeping a relational database for data integrity reasons + use of JSONB columns for custom JSON data
    • Verify if JSONB is supported by DBMS other than PostgreSQL as well
    • Alternatives: memo-column in each table to receive JSON format data from custom attributes
  • Standards
    • Core should keep to current model → standards should be added as adapters

Proposed migration strategy (“illustrated”)

  • Modularity
    • Loosely coupled modules
    • Event-based communication (Django Signals, RabbitMQ)
  • Webservices of current application are limited
  • Recommendation to not develop connectors until the architecture is stabilized (~6 months), especially relevant for Digital Square awards

Proposed technical stack (showcase)

Note: retained stack will be maintained and further detailed in Target Technology Stack

  • Containers (Docker):
    • like a virtual server with a preconfigured image of any needed combination of openIMIS Modules
    • could be a combination of MS .NET modules (license issues!) and modules from the new architecture
    • docker images with a packed openIMIS distribution can be uploaded to dockerhub
      • this is easy to do for the target architecture (after migration), but difficult / a lot of effort for the current application due to the dependencies to SQL server / IIS
  • Front (Material-ui, React & Redux)
  • Back (Django / Python)
    • + Airflow for Monitoring of Batch processes
  • Database (SQL-Server > Postgres)

Way Forward

  • Follow up meeting next week (check doodle)
  • Everybody should engage in peer-to-peer
  • Developers workshop in the last week of February. Everybody should engage in peer to peer discussions on the proposed framework until then. At the workshop we'll have to decide on the framework and the work plan.