{"id":6653,"date":"2026-06-30T20:29:28","date_gmt":"2026-06-30T20:29:28","guid":{"rendered":"https:\/\/www.rldatix.com\/engineering\/?p=6653"},"modified":"2026-06-30T21:26:26","modified_gmt":"2026-06-30T21:26:26","slug":"zero-downtime-deployments-in-healthcare-how-we-design-systems-that-never-go-offline","status":"publish","type":"post","link":"https:\/\/www.rldatix.com\/engineering\/resources\/zero-downtime-deploymentsin-healthcarehow-we-design-systems-that-never-go-offline\/","title":{"rendered":"Zero-Downtime Deployments\u00a0in Healthcare:\u00a0How We Design Systems That Never Go Offline\u00a0"},"content":{"rendered":"\n<div style=\"height:28px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p><strong><em>Robert Downey, Chief Technology Officer, Data Solutions Group at RLDatix<\/em>\u00a0<\/strong><br><br>Somewhere in healthcare IT right now, a calendar invite\u00a0is going\u00a0out for a 2 a.m. maintenance window. Clinicians will lose access to\u00a0patient charts and histories\u00a0for a few hours\u00a0while the system is down.\u00a0Behind the scenes,\u00a0an\u00a0ops team will set an alarm, push a release, watch a\u00a0dashboard,\u00a0and hope nothing goes wrong before sunrise.\u00a0<\/p>\n\n\n\n<p>We treat this&nbsp;ritual as the cost of doing business, but it&nbsp;isn&#8217;t. In fact, scheduled downtime is rarely unavoidable.&nbsp;It\u2019s&nbsp;the result of&nbsp;early architecture decisions that are difficult to roll back.&nbsp;<\/p>\n\n\n\n<p>On the team behind&nbsp;VitalCenter&nbsp;Online (VCO),&nbsp;RLDatix\u2019s&nbsp;SaaS platform for archiving legacy clinical&nbsp;and operational&nbsp;data, we made a&nbsp;difference&nbsp;choice. We run continuous, zero-downtime deployments across geographic production instances, so health systems can&nbsp;retire&nbsp;the source systems they were paying to keep alive.&nbsp;&nbsp;<\/p>\n\n\n\n<p>The scale of data involved in this process is hard to picture. <strong>Our U.S. instance alone holds&nbsp;roughly 5&nbsp;petabytes of data across more than 5,000 databases<\/strong>, hundreds of billions of documents and images, and serves hundreds of thousands of concurrent users \u2014 all live, all the time. And we&nbsp;deploy to&nbsp;these systems with no maintenance windows, no human intervention at release time and no interruption of service.&nbsp;&nbsp;<\/p>\n\n\n\n<p>But the lesson here&nbsp;isn&#8217;t&nbsp;that our team works harder at 2 a.m.&nbsp;It&#8217;s&nbsp;that we&nbsp;decided,&nbsp;on day one, never to need 2 a.m. at all.&nbsp;<\/p>\n\n\n\n<p>Zero-downtime is not a runbook.&nbsp;It&#8217;s&nbsp;a set of architectural commitments you make in the design phase and refuse to defer. Here are the four that matter most:&nbsp;<\/p>\n\n\n\n<div style=\"height:33px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>1. Design contracts&nbsp;to survive multiple versions running at once&nbsp;<\/strong><\/h2>\n\n\n\n<div style=\"height:var(--wp--preset--spacing--40)\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>The database gets most of the attention in conversations about zero-downtime deployment, but it is only one of the contracts in play. The UI calls&nbsp;the backend. Backend services call each other. Components communicate through message queues and event streams. During a rollout across a large fleet, none of those boundaries flip simultaneously.&nbsp;<\/p>\n\n\n\n<p>We&nbsp;design for&nbsp;that explicitly. Every&nbsp;component&nbsp;we ship must satisfy what we call +1\/\u22121 compatibility: at any moment, three versions of a&nbsp;component&nbsp;\u2014 one behind current, current and one ahead \u2014 can run and communicate successfully. This is not a degraded state during&nbsp;a release. It is the&nbsp;default&nbsp;every&nbsp;component&nbsp;is built to honor.&nbsp;<\/p>\n\n\n\n<p>In practice, that means a message produced by the&nbsp;previous&nbsp;version is readable by the next, and an API behaves correctly whether the&nbsp;component&nbsp;on the other end is one version back or one version forward. A change that cannot meet that bar does not ship.&nbsp;<\/p>\n\n\n\n<p>Version gaps exist for two reasons. The first is transient: during a rollout, components on the same fleet upgrade at&nbsp;different times. The second is intentional: significant schema migrations run ahead of the main deployment as a deliberate prior step, leaving parts of the system one version ahead for a period.&nbsp;&nbsp;<\/p>\n\n\n\n<p>In both cases, the rule is the same: every&nbsp;component&nbsp;must continue communicating with its one-behind and one-ahead neighbors, so those version gaps are never visible to a user.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"732\" height=\"506\" src=\"https:\/\/www.rldatix.com\/engineering\/wp-content\/uploads\/sites\/12\/2026\/06\/rldatix-engineering-multi-version-compatibility.jpg\" alt=\"\" class=\"wp-image-6678\" srcset=\"https:\/\/www.rldatix.com\/engineering\/wp-content\/uploads\/sites\/12\/2026\/06\/rldatix-engineering-multi-version-compatibility.jpg 732w, https:\/\/www.rldatix.com\/engineering\/wp-content\/uploads\/sites\/12\/2026\/06\/rldatix-engineering-multi-version-compatibility-300x207.jpg 300w, https:\/\/www.rldatix.com\/engineering\/wp-content\/uploads\/sites\/12\/2026\/06\/rldatix-engineering-multi-version-compatibility-312x216.jpg 312w, https:\/\/www.rldatix.com\/engineering\/wp-content\/uploads\/sites\/12\/2026\/06\/rldatix-engineering-multi-version-compatibility-77x53.jpg 77w, https:\/\/www.rldatix.com\/engineering\/wp-content\/uploads\/sites\/12\/2026\/06\/rldatix-engineering-multi-version-compatibility-625x432.jpg 625w\" sizes=\"auto, (max-width: 732px) 100vw, 732px\" \/><figcaption class=\"wp-element-caption\"><em>+1\/\u22121 compatibility: one behind, current, and one ahead all run live and interoperate across every versioned boundary.<\/em>&nbsp;<\/figcaption><\/figure>\n\n\n\n<p>In the database layer, this principle took us somewhere&nbsp;I&#8217;m&nbsp;genuinely proud of.&nbsp;We&nbsp;built a migration system that supports movement in both directions across every schema version ever shipped, back to the first version from 2015,&nbsp;with zero human intervention and zero downtime.&nbsp;<\/p>\n\n\n\n<p>As a result, &#8220;roll back&#8221; stops being a fire drill and becomes a routine, automated capability. And because every intermediate schema state&nbsp;remains&nbsp;valid, going backward is as safe and predictable as going forward.&nbsp;&nbsp;<\/p>\n\n\n\n<p>Finally, non-blocking operations complete the picture.&nbsp;A migration that requires a table lock is a maintenance window by another name.&nbsp;We avoid that entirely: changes are built in new tables, swapped in atomically, and high-availability secondaries absorb the load during the transition.&nbsp;The heavy work still&nbsp;happens but&nbsp;reads against live data never stop. The operation completes, and the clinician never feels it.&nbsp;<\/p>\n\n\n\n<div style=\"height:var(--wp--preset--spacing--60)\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>2. Earn your way to production through an unforgiving test gauntlet&nbsp;<\/strong><\/h2>\n\n\n\n<div style=\"height:var(--wp--preset--spacing--40)\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>A change&nbsp;that&nbsp;behaves correctly&nbsp;on one database is not automatically safe on&nbsp;5,000. With live regional instances standing in front of every customer, &#8220;we&#8217;ll watch it carefully in prod&#8221; is not a strategy.&nbsp;By the time&nbsp;a change&nbsp;reaches production, the margin for surprise has to be essentially gone.&nbsp;<\/p>\n\n\n\n<p>That\u2019s&nbsp;why&nbsp;we make changes&nbsp;earn&nbsp;their way forward. We&nbsp;maintain&nbsp;more than 12,000 automated tests across unit, integration,&nbsp;system&nbsp;and UI layers.&nbsp;The full suite runs at every environment a change passes through \u2014 not once at the end of the pipeline, but at each stop. It runs locally on developer machines, in a dev environment wiped and rebuilt from scratch on each run, in dedicated per-PR environments, in internal user-facing stages including UAT, and finally in customer-facing environments including staging and production. A single&nbsp;failure anywhere&nbsp;stops the release.&nbsp;<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"697\" height=\"374\" src=\"https:\/\/www.rldatix.com\/engineering\/wp-content\/uploads\/sites\/12\/2026\/06\/rldatix-engineering-test-pipeline-production.jpg\" alt=\"\" class=\"wp-image-6680\" srcset=\"https:\/\/www.rldatix.com\/engineering\/wp-content\/uploads\/sites\/12\/2026\/06\/rldatix-engineering-test-pipeline-production.jpg 697w, https:\/\/www.rldatix.com\/engineering\/wp-content\/uploads\/sites\/12\/2026\/06\/rldatix-engineering-test-pipeline-production-300x161.jpg 300w, https:\/\/www.rldatix.com\/engineering\/wp-content\/uploads\/sites\/12\/2026\/06\/rldatix-engineering-test-pipeline-production-99x53.jpg 99w, https:\/\/www.rldatix.com\/engineering\/wp-content\/uploads\/sites\/12\/2026\/06\/rldatix-engineering-test-pipeline-production-625x335.jpg 625w\" sizes=\"auto, (max-width: 697px) 100vw, 697px\" \/><figcaption class=\"wp-element-caption\"><em>The full 12,000+ test suite&nbsp;runs at&nbsp;every environment; cumulative executions climb toward ~100,000 before a change reaches a customer.<\/em>&nbsp;<\/figcaption><\/figure>\n\n\n\n<p>The rollout itself has three governing properties:&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>It&nbsp;is fully&nbsp;automated:<\/strong>&nbsp;The continuous delivery pipeline runs deployments with no&nbsp;human&nbsp;in the loop at release time, and binaries reach runtime only through that pipeline. Human judgment happens earlier in code review and change control, not in a tense 2 a.m. console session.&nbsp;<\/li>\n\n\n\n<li><strong>It&nbsp;is staged:&nbsp;<\/strong>Changes move through a deliberate progression&nbsp;with no single moment where everything flips simultaneously.&nbsp;Each stage is a smaller, safer version of the next.&nbsp;<\/li>\n\n\n\n<li><strong>It&#8217;s&nbsp;reversible&nbsp;by configuration:&nbsp;<\/strong>New functionality ships dormant behind feature toggles, is activated deliberately and can be deactivated without a redeploy or service interruption. Code and schema rollback exist as deeper backstops, but the toggle path is faster, lower risk and where the team turns first.&nbsp;<\/li>\n<\/ul>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"783\" height=\"465\" src=\"https:\/\/www.rldatix.com\/engineering\/wp-content\/uploads\/sites\/12\/2026\/06\/rldatix-engineering-regression-rollback-strategy.jpg\" alt=\"\" class=\"wp-image-6679\" srcset=\"https:\/\/www.rldatix.com\/engineering\/wp-content\/uploads\/sites\/12\/2026\/06\/rldatix-engineering-regression-rollback-strategy.jpg 783w, https:\/\/www.rldatix.com\/engineering\/wp-content\/uploads\/sites\/12\/2026\/06\/rldatix-engineering-regression-rollback-strategy-300x178.jpg 300w, https:\/\/www.rldatix.com\/engineering\/wp-content\/uploads\/sites\/12\/2026\/06\/rldatix-engineering-regression-rollback-strategy-768x456.jpg 768w, https:\/\/www.rldatix.com\/engineering\/wp-content\/uploads\/sites\/12\/2026\/06\/rldatix-engineering-regression-rollback-strategy-89x53.jpg 89w, https:\/\/www.rldatix.com\/engineering\/wp-content\/uploads\/sites\/12\/2026\/06\/rldatix-engineering-regression-rollback-strategy-625x371.jpg 625w\" sizes=\"auto, (max-width: 783px) 100vw, 783px\" \/><figcaption class=\"wp-element-caption\"><em>Reversing a regression: configuration first, with code and schema rollback as deeper backstops.<\/em>&nbsp;<\/figcaption><\/figure>\n\n\n\n<p>Once a change is live, centralized telemetry aggregates error rates,&nbsp;latency&nbsp;and functional health signals into a single view. Alerts surface anomalies within minutes, fast enough that a configuration change typically resolves the issue before a clinician&nbsp;notices&nbsp;anything.&nbsp;<\/p>\n\n\n\n<div style=\"height:var(--wp--preset--spacing--60)\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>3. Release&nbsp;small&nbsp;changes&nbsp;frequently&nbsp;<\/strong><\/h2>\n\n\n\n<div style=\"height:var(--wp--preset--spacing--40)\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>The safest release is the small one, and the only way to keep releases small is to ship them&nbsp;frequently.&nbsp;&nbsp;<\/p>\n\n\n\n<p>The instinct in a high-stakes environment is to batch changes and release rarely. That feels like&nbsp;prudence. A release carrying a single&nbsp;day&#8217;s&nbsp;change has a small surface area: if something is off, the cause is usually obvious and the impact is&nbsp;contained. A release carrying months of accumulated work is a different problem,&nbsp;with&nbsp;dozens of interacting modifications landing at&nbsp;once&nbsp;and&nbsp;none easily isolated.&nbsp;<\/p>\n\n\n\n<p>Instead, we&nbsp;release continuously, and we release often.&nbsp;Our target cadence is weekly&nbsp;to&nbsp;production. In&nbsp;practice&nbsp;it lands closer to twice a month, with customer-facing non-production environments updating multiple times a week. All of it happens without downtime or end-user impact.&nbsp;<\/p>\n\n\n\n<p>Frequency is also a flywheel. Every uneventful release&nbsp;builds&nbsp;confidence, which sustains the cadence, keeps changes&nbsp;smal&nbsp;and&nbsp;makes the next release safer still. Teams that release rarely get worse at&nbsp;it. The process becomes fragile, fear accumulates, and deploy becomes a quarterly event everyone dreads, guaranteeing the changes are&nbsp;large&nbsp;and the risk is exactly what the process was meant to&nbsp;contain.&nbsp;<\/p>\n\n\n\n<div style=\"height:var(--wp--preset--spacing--60)\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>4. Make the decisions you&nbsp;can&#8217;t&nbsp;retrofit&nbsp;<\/strong><\/h2>\n\n\n\n<div style=\"height:var(--wp--preset--spacing--40)\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Almost none of what is described above can be added to a system that was not built for it.&nbsp;<\/p>\n\n\n\n<p>You cannot retrofit +1\/\u22121 compatibility onto components that assumed everything upgrades simultaneously: that assumption is baked into thousands of interactions, and unpicking it is a rebuild, not a refactor. You cannot introduce bidirectional schema migrations into a database full of breaking changes. You cannot build a 100,000-execution test gauntlet on a codebase that was not written to be testable. You cannot bolt non-blocking database operations onto a data model that takes locks throughout. And feature toggles introduced late are not trustworthy, because the entire codebase&nbsp;has to&nbsp;honor them consistently for the guarantee to hold.&nbsp;<\/p>\n\n\n\n<p>These are day-one decisions. We made&nbsp;a cloud-native platform&nbsp;with geo-redundant replication,&nbsp;an automated pipeline as the only route to production,&nbsp;+1\/\u22121 versioning as a constraint every component must satisfy,&nbsp;feature toggles as a first-class part of how features are written,&nbsp;and bidirectional schema compatibility as an invariant no change is permitted to break.&nbsp;<\/p>\n\n\n\n<p>The reason we can \u201cdo it live\u201d today is simple: no one, years ago, chose the easy path with the intention of fixing it later.&nbsp;There is no \u201clater.\u201d&nbsp;Availability deferred at the design stage is availability you do not have in production.&nbsp;<\/p>\n\n\n\n<div style=\"height:var(--wp--preset--spacing--60)\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>The Cost of Downtime is Human Lives<\/strong><\/h2>\n\n\n\n<div style=\"height:var(--wp--preset--spacing--40)\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>It would be easy to read all of this as an engineering exercise, but&nbsp;I&#8217;d&nbsp;ask you to resist that framing, because it&nbsp;isn\u2019t. The stakes&nbsp;aren&#8217;t&nbsp;technical.&nbsp;It\u2019s&nbsp;human&nbsp;lives.&nbsp;<\/p>\n\n\n\n<p>When a clinical system goes into a maintenance window, someone loses access to information a patient\u2019s care depends on. A clinician opens an&nbsp;EMR&nbsp;and the record&nbsp;isn\u2019t&nbsp;there. A medication history&nbsp;won\u2019t&nbsp;load. A decision gets made with less context than it should have.&nbsp;We\u2019ve&nbsp;normalized \u201cthe system is down for maintenance\u201d to the point that we forget&nbsp;there\u2019s&nbsp;a person on the other end of every minute of that downtime, often at the exact hours when staffing is thinnest and the stakes are highest.&nbsp;<\/p>\n\n\n\n<p>The engineering described here exists so that VCO is simply there whenever care&nbsp;happens:&nbsp;at 2 a.m., mid-release, mid-migration, whenever a clinician needs a record.&nbsp;<\/p>\n\n\n\n<p>The teams that&nbsp;operate&nbsp;live, mission-critical healthcare systems without maintenance windows&nbsp;did&nbsp;not&nbsp;get there&nbsp;through operational heroics.&nbsp;They got there by making a small number of non-negotiable decisions early and refusing to defer them,&nbsp;because&nbsp;the&nbsp;healthcare professionals relying on these systems deserve an architecture that never makes them wonder whether the record they need is available right now.&nbsp;<\/p>\n\n\n\n<div style=\"height:15px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<div style=\"height:31px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n    \n    <section\n        class=\"accordion accordion-wide py-16 py-md-26 text-bg-white accordion-post-page\"\n        id=\"\" data-bs-theme=\"white\">\n        <div class=\"container\">\n            \n\n<div class=\"wp-block-columns accordion-intro-row is-layout-flex wp-container-core-columns-is-layout-9d6595d7 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<p class=\"text-small-normal fw-bold mb-2\"><\/p>\n\n\n\n<h2 class=\"wp-block-heading heading-h2 mb-4 mb-md-4\">Frequently Asked Questions<\/h2>\n\n\n\n<p class=\"mb-6 mb-md-4\"><\/p>\n\n\n\n<div class=\"wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex\"><\/div>\n<\/div>\n\n\n\n<div class=\"wp-block-column accordion-items-column is-layout-flow wp-block-column-is-layout-flow\"><div class=\"accordion-item mb-1 border-0 bg-transparent rounded-3 d-flex gap-1\" id=\"\">\n    <div class=\"text-bg-off-white rounded-2 flex-grow-1 text-left\">\n        <button\n            class=\"accordion-header accordion-button collapsed border-0 bg-transparent text-dark m-0 heading-h6 px-3 py-3 px-md-8 py-md-6\"\n            type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#collapse-6a446e6ccabde\" aria-expanded=\"false\"\n            aria-controls=\"collapse-6a446e6ccabde\">\n            <span>What is a zero-downtime deployment?\u00a0<\/span>\n            <span class=\"accordion-icon\" aria-hidden=\"true\"><\/span>\n        <\/button>\n        <div id=\"collapse-6a446e6ccabde\" class=\"accordion-collapse collapse \" data-bs-parent=\".accordion\">\n            <div class=\"accordion-body pt-0\">\n                \n\n<p>A zero-downtime deployment lets software updates, database changes and new features go live without taking the system offline or interrupting users. Existing and updated components continue to&nbsp;operate&nbsp;together throughout the release, with no maintenance window and no service interruption.&nbsp;<\/p>\n\n\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\n<div class=\"accordion-item mb-1 border-0 bg-transparent rounded-3 d-flex gap-1\" id=\"\">\n    <div class=\"text-bg-off-white rounded-2 flex-grow-1 text-left\">\n        <button\n            class=\"accordion-header accordion-button collapsed border-0 bg-transparent text-dark m-0 heading-h6 px-3 py-3 px-md-8 py-md-6\"\n            type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#collapse-6a446e6ccad45\" aria-expanded=\"false\"\n            aria-controls=\"collapse-6a446e6ccad45\">\n            <span>How does\u00a0VitalCenter\u00a0Online deploy updates without maintenance windows?\u00a0<\/span>\n            <span class=\"accordion-icon\" aria-hidden=\"true\"><\/span>\n        <\/button>\n        <div id=\"collapse-6a446e6ccad45\" class=\"accordion-collapse collapse \" data-bs-parent=\".accordion\">\n            <div class=\"accordion-body pt-0\">\n                \n\n<p>VCO uses backwards and forwards version compatibility, automated testing across multiple staged environments, feature toggles, a fully automated deployment pipeline and non-blocking database migrations. These allow different software versions to run together during a rollout and enable changes to be reversed quickly if an issue occurs, usually through a configuration change rather than a code rollback.&nbsp;<\/p>\n\n\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\n<div class=\"accordion-item mb-1 border-0 bg-transparent rounded-3 d-flex gap-1\" id=\"\">\n    <div class=\"text-bg-off-white rounded-2 flex-grow-1 text-left\">\n        <button\n            class=\"accordion-header accordion-button collapsed border-0 bg-transparent text-dark m-0 heading-h6 px-3 py-3 px-md-8 py-md-6\"\n            type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#collapse-6a446e6ccae38\" aria-expanded=\"false\"\n            aria-controls=\"collapse-6a446e6ccae38\">\n            <span>Why is zero downtime important for healthcare systems?\u00a0<\/span>\n            <span class=\"accordion-icon\" aria-hidden=\"true\"><\/span>\n        <\/button>\n        <div id=\"collapse-6a446e6ccae38\" class=\"accordion-collapse collapse \" data-bs-parent=\".accordion\">\n            <div class=\"accordion-body pt-0\">\n                \n\n<p>Clinicians need access to patient records, medication&nbsp;histories&nbsp;and clinical data at any time, including overnight, on weekends and during shift handovers. Planned maintenance windows create gaps in that access at the exact hours when staffing is thinnest. Removing them means the system is available whenever care happens.&nbsp;<\/p>\n\n\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div>\n\n<div class=\"accordion-item mb-1 border-0 bg-transparent rounded-3 d-flex gap-1\" id=\"\">\n    <div class=\"text-bg-off-white rounded-2 flex-grow-1 text-left\">\n        <button\n            class=\"accordion-header accordion-button collapsed border-0 bg-transparent text-dark m-0 heading-h6 px-3 py-3 px-md-8 py-md-6\"\n            type=\"button\" data-bs-toggle=\"collapse\" data-bs-target=\"#collapse-6a446e6ccaee3\" aria-expanded=\"false\"\n            aria-controls=\"collapse-6a446e6ccaee3\">\n            <span>Can zero-downtime deployment be added to an existing system?\u00a0<\/span>\n            <span class=\"accordion-icon\" aria-hidden=\"true\"><\/span>\n        <\/button>\n        <div id=\"collapse-6a446e6ccaee3\" class=\"accordion-collapse collapse \" data-bs-parent=\".accordion\">\n            <div class=\"accordion-body pt-0\">\n                \n\n<p>Some practices, such as feature toggles and improved monitoring, can be introduced into an existing system with reasonable effort. The practices that matter most, including version compatibility across component boundaries, bidirectional database migrations and a fully automated deployment pipeline, are much harder to retrofit. They are most effective when treated as architectural requirements from the start of a project.&nbsp;<\/p>\n\n\n            <\/div>\n        <\/div>\n    <\/div>\n<\/div><\/div>\n<\/div>\n\n\n        <\/div>\n    <\/section>\n\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Robert Downey, Chief Technology Officer, Data Solutions Group at RLDatix\u00a0 Somewhere in healthcare IT right&#8230;<\/p>\n","protected":false},"author":30,"featured_media":6694,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[45],"tags":[],"class_list":["post-6653","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","primary-category-blog"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Zero-Downtime Deployments in Healthcare | RLDatix Engineering<\/title>\n<meta name=\"description\" content=\"How RLDatix runs continuous deployments with no maintenance windows \u2014 and the four architectural commitments that make it possible.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.rldatix.com\/engineering\/resources\/zero-downtime-deploymentsin-healthcarehow-we-design-systems-that-never-go-offline\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Zero-Downtime Deployments in Healthcare | RLDatix Engineering\" \/>\n<meta property=\"og:description\" content=\"How RLDatix runs continuous deployments with no maintenance windows \u2014 and the four architectural commitments that make it possible.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.rldatix.com\/engineering\/resources\/zero-downtime-deploymentsin-healthcarehow-we-design-systems-that-never-go-offline\/\" \/>\n<meta property=\"og:site_name\" content=\"Engineering\" \/>\n<meta property=\"article:published_time\" content=\"2026-06-30T20:29:28+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-06-30T21:26:26+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.rldatix.com\/engineering\/wp-content\/uploads\/sites\/12\/2026\/06\/zero_downtime_1080x1080.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1080\" \/>\n\t<meta property=\"og:image:height\" content=\"1080\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"Fathma Rahman\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@RLDatix_GC\" \/>\n<meta name=\"twitter:site\" content=\"@RLDatix_GC\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fathma Rahman\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.rldatix.com\/engineering\/resources\/zero-downtime-deploymentsin-healthcarehow-we-design-systems-that-never-go-offline\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.rldatix.com\/engineering\/resources\/zero-downtime-deploymentsin-healthcarehow-we-design-systems-that-never-go-offline\/\"},\"author\":{\"name\":\"Fathma Rahman\",\"@id\":\"https:\/\/www.rldatix.com\/engineering\/#\/schema\/person\/4330c2c690cf81c81be1f1a8ef6ced18\"},\"headline\":\"Zero-Downtime Deployments\u00a0in Healthcare:\u00a0How We Design Systems That Never Go Offline\u00a0\",\"datePublished\":\"2026-06-30T20:29:28+00:00\",\"dateModified\":\"2026-06-30T21:26:26+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.rldatix.com\/engineering\/resources\/zero-downtime-deploymentsin-healthcarehow-we-design-systems-that-never-go-offline\/\"},\"wordCount\":2085,\"publisher\":{\"@id\":\"https:\/\/www.rldatix.com\/engineering\/#organization\"},\"image\":{\"@id\":\"https:\/\/www.rldatix.com\/engineering\/resources\/zero-downtime-deploymentsin-healthcarehow-we-design-systems-that-never-go-offline\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.rldatix.com\/engineering\/wp-content\/uploads\/sites\/12\/2026\/06\/zero_downtime_1080x1080.webp\",\"articleSection\":[\"Blog\"],\"inLanguage\":\"en-GB\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.rldatix.com\/engineering\/resources\/zero-downtime-deploymentsin-healthcarehow-we-design-systems-that-never-go-offline\/\",\"url\":\"https:\/\/www.rldatix.com\/engineering\/resources\/zero-downtime-deploymentsin-healthcarehow-we-design-systems-that-never-go-offline\/\",\"name\":\"Zero-Downtime Deployments in Healthcare | RLDatix Engineering\",\"isPartOf\":{\"@id\":\"https:\/\/www.rldatix.com\/engineering\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.rldatix.com\/engineering\/resources\/zero-downtime-deploymentsin-healthcarehow-we-design-systems-that-never-go-offline\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.rldatix.com\/engineering\/resources\/zero-downtime-deploymentsin-healthcarehow-we-design-systems-that-never-go-offline\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.rldatix.com\/engineering\/wp-content\/uploads\/sites\/12\/2026\/06\/zero_downtime_1080x1080.webp\",\"datePublished\":\"2026-06-30T20:29:28+00:00\",\"dateModified\":\"2026-06-30T21:26:26+00:00\",\"description\":\"How RLDatix runs continuous deployments with no maintenance windows \u2014 and the four architectural commitments that make it possible.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.rldatix.com\/engineering\/resources\/zero-downtime-deploymentsin-healthcarehow-we-design-systems-that-never-go-offline\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.rldatix.com\/engineering\/resources\/zero-downtime-deploymentsin-healthcarehow-we-design-systems-that-never-go-offline\/\"]}],\"about\":{\"@id\":\"https:\/\/www.rldatix.com\/engineering\/#organization\"}},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\/\/www.rldatix.com\/engineering\/resources\/zero-downtime-deploymentsin-healthcarehow-we-design-systems-that-never-go-offline\/#primaryimage\",\"url\":\"https:\/\/www.rldatix.com\/engineering\/wp-content\/uploads\/sites\/12\/2026\/06\/zero_downtime_1080x1080.webp\",\"contentUrl\":\"https:\/\/www.rldatix.com\/engineering\/wp-content\/uploads\/sites\/12\/2026\/06\/zero_downtime_1080x1080.webp\",\"width\":1080,\"height\":1080},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.rldatix.com\/engineering\/resources\/zero-downtime-deploymentsin-healthcarehow-we-design-systems-that-never-go-offline\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"RLDatix \u2013 Government &amp; Commercial\",\"item\":\"https:\/\/www.rldatix.com\/engineering\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Zero-Downtime Deployments\u00a0in Healthcare:\u00a0How We Design Systems That Never Go Offline\u00a0\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.rldatix.com\/engineering\/#website\",\"url\":\"https:\/\/www.rldatix.com\/engineering\/\",\"name\":\"RLDatix \u2013 Engineering\",\"description\":\"RLDatix, the real life decisions software solutions driving health in healthcare, helping organise, reduce harm, improve safety and strengthen patient and staff outcomes through systemwide decision making\",\"publisher\":{\"@id\":\"https:\/\/www.rldatix.com\/engineering\/#organization\"},\"alternateName\":\"RLDatix \u2013 Engineering\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.rldatix.com\/engineering\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.rldatix.com\/engineering\/#organization\",\"name\":\"RLDatix Government & Commercial\",\"alternateName\":\"RLD G&C\",\"url\":\"https:\/\/www.rldatix.com\/engineering\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\/\/www.rldatix.com\/engineering\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.rldatix.com\/engineering\/wp-content\/uploads\/sites\/12\/2026\/05\/logo-dark.svg\",\"contentUrl\":\"https:\/\/www.rldatix.com\/engineering\/wp-content\/uploads\/sites\/12\/2026\/05\/logo-dark.svg\",\"width\":156,\"height\":30,\"caption\":\"RLDatix Government & Commercial\"},\"image\":{\"@id\":\"https:\/\/www.rldatix.com\/engineering\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/x.com\/RLDatix_GC\",\"https:\/\/www.linkedin.com\/company\/rldatix-government-commercial\/\"],\"areaServed\":\"Worldwide\",\"parentOrganization\":{\"@id\":\"https:\/\/www.rldatix.com\/#organization\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.rldatix.com\/engineering\/#\/schema\/person\/4330c2c690cf81c81be1f1a8ef6ced18\",\"name\":\"Fathma Rahman\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\/\/www.rldatix.com\/engineering\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/f1a0f335568fb75d6d6443874064c2d5ce94a1a69f7932ff78ed2de45ecae82f?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/f1a0f335568fb75d6d6443874064c2d5ce94a1a69f7932ff78ed2de45ecae82f?s=96&d=mm&r=g\",\"caption\":\"Fathma Rahman\"}},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.rldatix.com\/#organization\",\"name\":\"RLDatix\",\"url\":\"https:\/\/www.rldatix.com\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Zero-Downtime Deployments in Healthcare | RLDatix Engineering","description":"How RLDatix runs continuous deployments with no maintenance windows \u2014 and the four architectural commitments that make it possible.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.rldatix.com\/engineering\/resources\/zero-downtime-deploymentsin-healthcarehow-we-design-systems-that-never-go-offline\/","og_locale":"en_GB","og_type":"article","og_title":"Zero-Downtime Deployments in Healthcare | RLDatix Engineering","og_description":"How RLDatix runs continuous deployments with no maintenance windows \u2014 and the four architectural commitments that make it possible.","og_url":"https:\/\/www.rldatix.com\/engineering\/resources\/zero-downtime-deploymentsin-healthcarehow-we-design-systems-that-never-go-offline\/","og_site_name":"Engineering","article_published_time":"2026-06-30T20:29:28+00:00","article_modified_time":"2026-06-30T21:26:26+00:00","og_image":[{"width":1080,"height":1080,"url":"https:\/\/www.rldatix.com\/engineering\/wp-content\/uploads\/sites\/12\/2026\/06\/zero_downtime_1080x1080.webp","type":"image\/webp"}],"author":"Fathma Rahman","twitter_card":"summary_large_image","twitter_creator":"@RLDatix_GC","twitter_site":"@RLDatix_GC","twitter_misc":{"Written by":"Fathma Rahman","Estimated reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.rldatix.com\/engineering\/resources\/zero-downtime-deploymentsin-healthcarehow-we-design-systems-that-never-go-offline\/#article","isPartOf":{"@id":"https:\/\/www.rldatix.com\/engineering\/resources\/zero-downtime-deploymentsin-healthcarehow-we-design-systems-that-never-go-offline\/"},"author":{"name":"Fathma Rahman","@id":"https:\/\/www.rldatix.com\/engineering\/#\/schema\/person\/4330c2c690cf81c81be1f1a8ef6ced18"},"headline":"Zero-Downtime Deployments\u00a0in Healthcare:\u00a0How We Design Systems That Never Go Offline\u00a0","datePublished":"2026-06-30T20:29:28+00:00","dateModified":"2026-06-30T21:26:26+00:00","mainEntityOfPage":{"@id":"https:\/\/www.rldatix.com\/engineering\/resources\/zero-downtime-deploymentsin-healthcarehow-we-design-systems-that-never-go-offline\/"},"wordCount":2085,"publisher":{"@id":"https:\/\/www.rldatix.com\/engineering\/#organization"},"image":{"@id":"https:\/\/www.rldatix.com\/engineering\/resources\/zero-downtime-deploymentsin-healthcarehow-we-design-systems-that-never-go-offline\/#primaryimage"},"thumbnailUrl":"https:\/\/www.rldatix.com\/engineering\/wp-content\/uploads\/sites\/12\/2026\/06\/zero_downtime_1080x1080.webp","articleSection":["Blog"],"inLanguage":"en-GB"},{"@type":"WebPage","@id":"https:\/\/www.rldatix.com\/engineering\/resources\/zero-downtime-deploymentsin-healthcarehow-we-design-systems-that-never-go-offline\/","url":"https:\/\/www.rldatix.com\/engineering\/resources\/zero-downtime-deploymentsin-healthcarehow-we-design-systems-that-never-go-offline\/","name":"Zero-Downtime Deployments in Healthcare | RLDatix Engineering","isPartOf":{"@id":"https:\/\/www.rldatix.com\/engineering\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.rldatix.com\/engineering\/resources\/zero-downtime-deploymentsin-healthcarehow-we-design-systems-that-never-go-offline\/#primaryimage"},"image":{"@id":"https:\/\/www.rldatix.com\/engineering\/resources\/zero-downtime-deploymentsin-healthcarehow-we-design-systems-that-never-go-offline\/#primaryimage"},"thumbnailUrl":"https:\/\/www.rldatix.com\/engineering\/wp-content\/uploads\/sites\/12\/2026\/06\/zero_downtime_1080x1080.webp","datePublished":"2026-06-30T20:29:28+00:00","dateModified":"2026-06-30T21:26:26+00:00","description":"How RLDatix runs continuous deployments with no maintenance windows \u2014 and the four architectural commitments that make it possible.","breadcrumb":{"@id":"https:\/\/www.rldatix.com\/engineering\/resources\/zero-downtime-deploymentsin-healthcarehow-we-design-systems-that-never-go-offline\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.rldatix.com\/engineering\/resources\/zero-downtime-deploymentsin-healthcarehow-we-design-systems-that-never-go-offline\/"]}],"about":{"@id":"https:\/\/www.rldatix.com\/engineering\/#organization"}},{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/www.rldatix.com\/engineering\/resources\/zero-downtime-deploymentsin-healthcarehow-we-design-systems-that-never-go-offline\/#primaryimage","url":"https:\/\/www.rldatix.com\/engineering\/wp-content\/uploads\/sites\/12\/2026\/06\/zero_downtime_1080x1080.webp","contentUrl":"https:\/\/www.rldatix.com\/engineering\/wp-content\/uploads\/sites\/12\/2026\/06\/zero_downtime_1080x1080.webp","width":1080,"height":1080},{"@type":"BreadcrumbList","@id":"https:\/\/www.rldatix.com\/engineering\/resources\/zero-downtime-deploymentsin-healthcarehow-we-design-systems-that-never-go-offline\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"RLDatix \u2013 Government &amp; Commercial","item":"https:\/\/www.rldatix.com\/engineering\/"},{"@type":"ListItem","position":2,"name":"Zero-Downtime Deployments\u00a0in Healthcare:\u00a0How We Design Systems That Never Go Offline\u00a0"}]},{"@type":"WebSite","@id":"https:\/\/www.rldatix.com\/engineering\/#website","url":"https:\/\/www.rldatix.com\/engineering\/","name":"RLDatix \u2013 Engineering","description":"RLDatix, the real life decisions software solutions driving health in healthcare, helping organise, reduce harm, improve safety and strengthen patient and staff outcomes through systemwide decision making","publisher":{"@id":"https:\/\/www.rldatix.com\/engineering\/#organization"},"alternateName":"RLDatix \u2013 Engineering","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.rldatix.com\/engineering\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":"Organization","@id":"https:\/\/www.rldatix.com\/engineering\/#organization","name":"RLDatix Government & Commercial","alternateName":"RLD G&C","url":"https:\/\/www.rldatix.com\/engineering\/","logo":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/www.rldatix.com\/engineering\/#\/schema\/logo\/image\/","url":"https:\/\/www.rldatix.com\/engineering\/wp-content\/uploads\/sites\/12\/2026\/05\/logo-dark.svg","contentUrl":"https:\/\/www.rldatix.com\/engineering\/wp-content\/uploads\/sites\/12\/2026\/05\/logo-dark.svg","width":156,"height":30,"caption":"RLDatix Government & Commercial"},"image":{"@id":"https:\/\/www.rldatix.com\/engineering\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/x.com\/RLDatix_GC","https:\/\/www.linkedin.com\/company\/rldatix-government-commercial\/"],"areaServed":"Worldwide","parentOrganization":{"@id":"https:\/\/www.rldatix.com\/#organization"}},{"@type":"Person","@id":"https:\/\/www.rldatix.com\/engineering\/#\/schema\/person\/4330c2c690cf81c81be1f1a8ef6ced18","name":"Fathma Rahman","image":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/www.rldatix.com\/engineering\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/f1a0f335568fb75d6d6443874064c2d5ce94a1a69f7932ff78ed2de45ecae82f?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/f1a0f335568fb75d6d6443874064c2d5ce94a1a69f7932ff78ed2de45ecae82f?s=96&d=mm&r=g","caption":"Fathma Rahman"}},{"@type":"Organization","@id":"https:\/\/www.rldatix.com\/#organization","name":"RLDatix","url":"https:\/\/www.rldatix.com\/"}]}},"_links":{"self":[{"href":"https:\/\/www.rldatix.com\/engineering\/wp-json\/wp\/v2\/posts\/6653","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.rldatix.com\/engineering\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.rldatix.com\/engineering\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.rldatix.com\/engineering\/wp-json\/wp\/v2\/users\/30"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rldatix.com\/engineering\/wp-json\/wp\/v2\/comments?post=6653"}],"version-history":[{"count":0,"href":"https:\/\/www.rldatix.com\/engineering\/wp-json\/wp\/v2\/posts\/6653\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.rldatix.com\/engineering\/wp-json\/wp\/v2\/media\/6694"}],"wp:attachment":[{"href":"https:\/\/www.rldatix.com\/engineering\/wp-json\/wp\/v2\/media?parent=6653"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rldatix.com\/engineering\/wp-json\/wp\/v2\/categories?post=6653"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rldatix.com\/engineering\/wp-json\/wp\/v2\/tags?post=6653"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}