The system reads readings according to the specified interval from the sensor which is attached to the body and enters the data into the database. The user can monitor the temperature in real time, set up notifications about temperature rise and add other family members to the account and share data.




Task
Our task was to develop a server part with a scalable architecture and a margin of safety in peak loads. Several interesting tasks were implemented within the framework of this task.
API for mobile applications
The client already had an MVP ready on Node.js, so we did not change the stack, as it was perfectly suited to the task. The project was completely converted to TypeScript, existing modules were rewritten and improved, and new ones were developed.
An important requirement was the completeness and relevance of the documentation for the API since the work on the mobile application was conducted by another team and it was necessary to ensure comfortable interaction. A mechanism for generating documentation from the code was introduced for this. Thus, when making changes to the source code, the relevance of the documentation and the completeness of the description of the methods are always preserved.
For the convenience of testing and development several environments were set up so that the mobile application team could comfortably conduct development and the client could make presentations to business partners at any time.
Scalable architecture
The application is in a reliable and time-tested environment: Amazon Web Services.
Backend is a set of microservices each performing its own task. We chose AWS Lambda as the environment for running functions to process a large number of requests and automatically scale as the project grows. This solution from Amazon AWS allows you not to worry about setting up and maintaining servers and focus on business tasks.


Reliability
All available AWS mechanisms are used and backup is configured to ensure the reliability of the solution.
Failure tolerance
- Database replication in several regions
- Replication of the search index in several regions
- Automatic horizontal scaling using Lambda functions
Data backups
Despite the implemented measures to ensure uninterrupted work, there is always a risk of an emergency situation.
Critical data backup and recovery mechanisms were configured for this.
Centralized event registration system
For quick and convenient analysis of errors and other issues, a centralized log storage was configured and delivery of logs from all microservices was ensured. For login and access distribution, a single SSO was configured and a proprietary Identity Provider was implemented, which is also used in other services of the company.
Monitoring system
Critical metrics are configured for tracking system status.
Test coverage
The project is covered by automatic tests for 100%, what provides a high level of quality and helps to avoid critical errors even at the development stage.
Administrative interface
To manage accounts, users, devices and other elements of the system, an administrative interface has been developed on React. Fast, convenient, adaptive.


Result
The project continues to develop and is preparing to enter the US and European markets. And we continue to provide technical support, add new functionality and improve the existing one.