Skip to content

Architecture Katas, a private event during winter 2024 (February/March). This repo has the Systems Savants team's solution to the Katas challenge

Notifications You must be signed in to change notification settings

systems-savants/monitor-me

Repository files navigation

Architectural Katas Winter 2024 - Systems Savants

This documentation repository is hosted on GitHub here: https://github.com/systems-savants/monitor-me

Welcome to our entry for the the O'Reilly Winter 2024 Architectural Katas. We, the System Savants team, are a team of engineers from the health insurance and health services sector. With common objectives of learning and having fun, the team embarked on journey to create a solution for the stated problem. The aim of this documentation git repository is to communicate our design for the problem described for technical and non-technical team audiences alike.

Here's our five-minute video presentation for the O'Reilly Architectural Kata.

The Systems Savants logo

Members

Table of Contents

1. Problem Background
  1.1 StayHealthy Inc. and MonitorMe
  1.2 Functional Requirements
  1.3 Glossary 
2. Problem Analysis
  2.1 Business Goals & Business Drivers
  2.2 Engagement Model
  2.3 Other Considerations
3. Architecture Analysis
  3.1 Architecturally Significant Requirements
  3.2 Constraints and Assumptions
  3.3 Actors, Actions, and Components
  3.4 Key Architecture Characteristics
  3.5 Capacity Planning
  3.6 Data Storage Considerations
  3.7 Guiding (Architecture) Principles
  3.8 Architecture Style Selection
4. Architecture Decision Records (ADRs)
  001-Use-K8s-with-containerize-microservice-architecture-style
  002-Use-API-Gateway-in-self-hosted-mode
  003-Hosting-Platform-On-Prem
  004-System-Design-Approach
  005-Telemetry-Observability-with-Elastic
  006-Layered-approach-to-security
  007-Deployment-Strategy
  008-Use-of-Infrastructure-as-Code-(IaC)
  009-IoT-Device-Communication-MQTT-Protocol
  010-Interoperability
  011-Postgre-SQL-for-Data-Storage
5. Solution Overview
  5.1 High-Level Architecture
  5.2 Deployment Architecture
  5.3 Nurse Station Dashboard UI View
  5.4 Medical Professional Mobile APP UI View

Solution Highlights

1. Problem Background

2. Problem Analysis

3. Architecture Analysis

Actors, Actions, and Components

First Draft

actor-action-component-1

Final Version

actor-action-component-2

Selected Architecture Characteristics

Top 3 Driving Characteristics Source
Y Interoperability/Integration Integration of patient's vital sign devices with MonitorMe (analyzing streaming data), and with MyMedicalData.
Data Integrity Vital sign data analyzed and recorded through MonitorMe must be as accurate as possible as the human lives are at stake.
Scalability/Elasticity StayHealthy, Inc. is looking towards adding more vital sign monitoring devices for MonitorMe in the future.
Y [Real-Time] Performance Vital signs data is send to consolidated monitoring screen with an average response time of 1 second or less.
Y High Availability System needs to be available all the times as the medical professional need to monitor patients vitals and take decision based on them.
Deployability We are proposing a combination of microservices and event-driven architecture with a service for each device ,being able to deploy the whole system seemlessly is important.

Implicit Architecture Characteristics

The following are a bedrock of architecture characteristics. They may not affect the structure but will feed into the overall architecture.

  • Usability
  • Security, authentication and authorization
  • Maintainability
  • Simplicity or observability

Capacity Planning

CapacityPlanning

Architecture Style Analysis & Selection

The above characteristics are highlighted below in green, with data integrity, above, not included in the matrix below. Data integrity will be a key architecture characteristic of the data store selected, along with the interface to this data store.

architectural-styles

Both Microservices and Event Driven architecture options have trade-offs, so we decided to go with a commbination of both microservices and event driven.

4. Architecture Decision Records (ADRs)

5. Proposed Solution

High-Level Architecture Diagram using the C4 Model

Context Diagram (C1) MonitorMe_C4_model-C1-ContextDiagram

Container Diagram (C2) MonitorMe_C4_model-C2-Container-Simplified

(Microservices Expanded) Container Diagram (C2): MonitorMe_C4_model-C2-Container-Expanded

Deployment Diagram [Hybrid/Private Cloud using On-premises AWS Outposts Servers]

Deployment/Infrastructure Architecture

Nurse Station Dashboard View Nurse Station Dashboard View

Medical Professional Mobile App View Medical Professional Mobile App View

Resources

References

Architecture Solution Story video presentation

Architecture Solution Story video presentation

About

Architecture Katas, a private event during winter 2024 (February/March). This repo has the Systems Savants team's solution to the Katas challenge

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages