Home - TeamMegaBoss/colegiul_pacientilor_15_june GitHub Wiki

Welcome to the colegiul_pacientilor_15_june wiki!

Overview

Requirements

Solution

Architectural decisions

  1. Do we need a database for data persistence, beside elasticsearch? Elasticsearch is not a proper solution for persisting data, in a production ready architecture. It should be used for its best role - search and analytics engine. For data persistence, we should consider a scalable database, NOSQL(Cassandra, Hbase), or a relational one, depending on the requirements.

  2. Do we need a BPM? A highly customizable, easy to use BPM, could add great value, of course, if fits the requirements. But, anyway, a BPM is an option worth to consider. One BPM that was evaluated is Bonita, but there may open source options:http://blog.softwaresuggest.com/top-free-open-source-bpm-software One of the most important side benefits is that with BPM we could generate all UI needed for this solution, and it would not need additional technology to create UI interface for CRUD operation.

  3. Data Ingestion? One of the two main purposes of this solution is to be able to ingest data. Data format is not yet known, nor the external systems it should with, but we should consider an architecture that could easily be extended and capable of ingestion high amounts of data.

  4. MiddleLayer/UI facade? The UI interfaces should not be communicating directly with the backend(Elastic, database) but through a UI facade. This would be the proper setup, but considering that this is a hackathon, maybe we should shorcut the flow, by eliminating the UI facade.

  5. Kafka for messaging and data processing Do we need to add a middle layer between system interfaces and backend, like Kafka for example? for decoupling interfaces from backend and have high flexibility, for managing data ingestion in the backend, and last but not the least, for data processing like data enrichment and others. Decision: NO, not for hackathon

R&D - Technology incubator area

Features

In this section, we investigate technologies with high return. Technologies or concepts, that once incubated in our solution it can provide nice features and add great value, with less development effort:

  1. Data harvester
  2. UI generator
  3. Geolocation
⚠️ **GitHub.com Fallback** ⚠️