We are thrilled to announce that the Software Architects of evozon placed third in the O’Reilly Winter 2024 Architectural Katas contest! A big congrats goes to Alina Avram, Ionuț Burzo, Hajni Burzo-Covaci, Claudiu Crețu and Mihai Todoruț!
Their hard work, dedication, innovative thinking and technical expertise have set them apart and showcased their incredible abilities.
What is the O’Reilly Architectural Katas contest?
Katas was an online contest that took place over three weeks of intense work where multiple teams of software architects were given a real software architecture problem to solve. This allowed them to test their skill and see how their competitors would approach the same problem. This is a rare opportunity for teams to work together and practice their craft in a safe, social and interactive environment. The teams presented their ideas to software architecture superstars Neal Ford and Mark Richards.
Neal Ford is a director, software architect, and meme wrangler at ThoughtWorks. He’s an internationally recognized expert on software development and delivery, especially in the intersection of Agile engineering techniques and software architecture.
Mark Richards is an experienced, hands-on software architect involved in the architecture, design, and implementation of microservices architectures and other distributed systems in a variety of technologies. He has been in the software industry since 1983 and has significant experience and expertise in application, integration, and enterprise architecture.
What is the problem the Software Architects of evozon tried to solve?
In Hospitals, mere seconds in nurses’ and doctors’ response time can save lives for patients with sensible health issues.
The scenario that the participants had to solve revolved around a fictional company: “StayHealthy, Inc. is a large and highly successful medical software company based in San Francisco, California, USA. It is now expanding into the medical monitoring market and needs a new medical patient monitoring system for hospitals that monitors a patient’s vital signs using StayHealthy, Inc.’s proprietary medical monitoring devices.”
Long story short, the team of software architects had to come up with a solution, The MonitorMe app that helps healthcare professionals by leveraging the power of new devices to provide accurate, timely, and easy-to-read patient data. Helping them in diagnosing and choosing treatments will lead to faster, better, and more informed decisions for healthcare professionals, and faster recovery for patients.
What is the solution the Software Architects of evozon came up with?
The process
The process for building the architecture of MonitorMe’s system can be summarized into the next steps:
- conduct a comprehensive analysis of project requirements and envision how the system would work from an infrastructure perspective and an architectural perspective;
- identify key software architecture characteristics which are critical to project success;
- select an appropriate architectural style based on the identified characteristics;
- iterate through previous steps to refine the proposal.
The solution
Our colleagues designed a solution where a device gateway will capture data transmitted by the vital sign monitoring devices, which then forwards it over an Event Messaging system to the On-Premise Server and the Consolidated Monitoring Screen.
In the On-Premise server, said message will be consumed by two processes. One to persist the information into the NoSql Database. The other called the Data Analysis module, will use relevant data cached in memory and the incoming signal to decide if an alert needs to be sent.
In case the alert is needed, the Data Analysis module pushes the alert message onto the Event Messaging System in order to be consumed by the Consolidated Monitoring Screen and the Mobile App, thus alerting medical professionals that a patient requires attention.
The benefits of this design include a quick display of alerts by using cashing and parallelization of storage, as well as extensibility since alerts can be sent to more systems by adding new consumers for them.
The Characteristics of the Architecture:
From the requirements analysis, the following architectural characteristics have emerged:
- Performance and responsiveness – derived from the requirements of having vital signs displayed in less than a second on the Consolidated Monitoring Screen and also of immediately alerting the medical professionals in case of an emergency. Focusing on these characteristics is crucial for life-saving activities.
- Fault tolerance – The system must continue working even if one of the medical devices is unavailable. For this reason, the team identified fault tolerance as one of the top 3 driving characteristics of their software architecture, emphasizing the importance of system resilience and reliability.
- Flexibility and scalability – Their solution can accommodate additional types of medical devices and can adapt rapidly to changes in business requirements and other factors in this new line of business for StayHealthy Inc.
The Architecture Style:
Building upon the identified architecture characteristics, the team explored Event-driven design as a solution due to its alignment with the majority of these requirements.
An analysis of the benefits and risks associated with Event-driven software architecture highlighted its advantages over alternative architectural styles.
Benefits:
- Real-time Responsiveness
- Adaptability to Changes
- Seamless Integration
- Loose Coupling
- Efficient Use of Resources
- Facilitating Parallel Processing
- Enhanced Fault Tolerance
Risks:
- Data Consistency
- Complex Event Routing Logic
- Security Concerns
- Operational Monitoring Challenges
Microservices architecture was ruled out due to its shortcomings in performance, a crucial aspect among our top three characteristics, even though it scores well in other aspects.
Final Thoughts
“We hope these resources are an invitation to a conversation with all stakeholders, since we see software architecture as a living, evolving artifact, helping the product team to design, develop, deploy, and maintain a software product.” – The Evolution Zone Team
Once again, congratulations to our software architects! Their achievement is an inspiration to us all and reinforces our commitment to fostering a culture of innovation and technical excellence.