Partner
IBM Deutschland GmbH
Case study02
C++-based backend development for Electronic Health Records following Gematik standards

Partner
IBM Deutschland GmbH
Industry
Healthcare
Core technologies
C++ · REST · Docker
At a glance
DuoByte supports IBM Deutschland in developing C++ backend components of the electronic patient record (ePA), an ePA that serves 73 million insured people. The work happens within the existing development team: DuoByte implements development tasks according to gematik specifications and reviews pull requests.
Our role: DuoByte supports IBM Deutschland's existing ePA team with C++ backend development, development tasks and code reviews.
Project work
How the project came together: from the context and requirements through implementation to where it stands today.
Context
Germany began rolling out the "ePA für alle" (an electronic patient record for everyone) on January 15, 2025. Statutory health insurers are required to create an electronic patient record for every insured person who does not opt out. Technically, an ePA record system manages the insured people's records and provides them to the respective client applications.
gematik, Germany's national agency for digital medicine, defines in its specifications how such a record system must be built. This includes components for user authentication, an access gateway, authorization and key management, and document management. Record systems go through a gematik approval process.
IBM Deutschland is the manufacturer of an approved ePA record system. This is the environment in which DuoByte works on C++ backend components.
Challenge
gematik specifications are binding. Backend components have to implement them precisely, because the record system is approved by gematik and must work with the clients it provides records to.
The ePA holds sensitive health data. Every change to the backend therefore has to meet the strict data protection and security requirements of the German healthcare system.
At the same time, the system serves an ePA for 73 million insured people. That puts real weight on the stability and resource efficiency of the backend components, and new work goes into an existing team's codebase rather than a greenfield project.
Solution
Within IBM's ePA team, DuoByte implements development tasks for backend components in C++. The basis is gematik's specifications and Germany's standards for health data.
Code reviews are a second focus: DuoByte reviews other developers' pull requests before changes enter the codebase. The review covers correctness against the specification as well as robustness, performance and security of the code.
This work draws on more than ten years of experience with performance-critical systems, from embedded through security to cloud.
Implementation
The backend components are written in C++ and built with CMake, with Boost extending the standard library. The project uses REST and SOAP interfaces, data is stored in PostgreSQL, and Python is used alongside.
Docker, DevContainers and Kubernetes form the project's container infrastructure. Jenkins handles builds and continuous integration, and SonarQube runs static analysis for quality and security issues.
Changes go through pull requests and code reviews. Performance optimization and IT security are constant priorities: C++ allows systems-level programming that gives precise control over memory and compute resources.
Outcome
The work is ongoing: DuoByte continues to develop C++ backend components of the ePA at IBM and to review pull requests within the team.
For healthcare clients, this means they talk directly to developers who know gematik specifications, the security requirements for health data and the realities of a large, regulated software project from daily practice.
Product & context
Selected views show how the system was conceived and implemented within its domain context.


System architecture
Technologies were combined to suit the task, operating model and long-term maintainability.
Related services
Keep exploring
Next case study

Your project
Tell us what your system needs to do. We bring structure to requirements, architecture and delivery.