<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="http://waltz.finos.org/waltz/feed.xml" rel="self" type="application/atom+xml" /><link href="http://waltz.finos.org/waltz/" rel="alternate" type="text/html" /><updated>2026-06-19T13:07:18+00:00</updated><id>http://waltz.finos.org/waltz/feed.xml</id><title type="html">FINOS - Waltz</title><subtitle>Khartec, open source producer of Waltz: An Enterprise Architecture information service</subtitle><entry><title type="html">Designing Safer Cloud Migration Waves with Waltz Dependency Mapping and AI Agents</title><link href="http://waltz.finos.org/waltz/blog/waltz/cloud-migration/enterprise-architecture/2026/05/28/cloud-migration-wave-planning-dependency-mapping.html" rel="alternate" type="text/html" title="Designing Safer Cloud Migration Waves with Waltz Dependency Mapping and AI Agents" /><published>2026-05-28T00:00:00+00:00</published><updated>2026-05-28T00:00:00+00:00</updated><id>http://waltz.finos.org/waltz/blog/waltz/cloud-migration/enterprise-architecture/2026/05/28/cloud-migration-wave-planning-dependency-mapping</id><content type="html" xml:base="http://waltz.finos.org/waltz/blog/waltz/cloud-migration/enterprise-architecture/2026/05/28/cloud-migration-wave-planning-dependency-mapping.html"><![CDATA[<p><a href="https://cloudhpc.news/designing-safer-cloud-migration-waves-with-waltz-dependency-mapping-and-ai-agents/"><img src="https://cloudhpc.news/content/images/size/w2000/2026/05/cover.png" alt="Cloud Migration Wave Planning" /></a></p>

<p>Cloud migration wave planning often looks sensible on paper, until execution exposes the dependencies nobody fully mapped.</p>

<p>In the latest post in my Waltz-based cloud migration series, I look at why migration waves should not be built only around team preference, application priority, or technical readiness.</p>

<!--more-->

<p>Those inputs matter, but they do not show the structure of the estate.
The real question is dependency-aware sequencing:</p>

<ul>
  <li>Can this application move independently?</li>
  <li>What must move before it?</li>
  <li>What must move with it?</li>
  <li>Who is affected downstream?</li>
  <li>Which bridges are needed during the hybrid period?</li>
</ul>

<p>Where are the hidden risks in shared databases, batch jobs, APIs, scheduler dependencies, network flows, and cross-jurisdictional data movement?</p>

<p>Using Waltz, dependency mapping turns those questions into a navigable architecture model. Applications, logical flows, physical flows, interfaces, shared infrastructure, ownership, data classifications, and regulatory context can be connected and reasoned over.</p>

<p>The article also explores how AI agents can work over the Waltz graph to make migration planning more defensible at portfolio scale. AI Agents can surface discrepancies between evidence sources, identify structural risks, recommend wave options against stated objectives, and provide role-specific insights for architects, CTOs, CIOs, and governance teams.</p>

<p>The key point: AI agents do not replace architectural judgement. They make architectural judgement enforceable at scale.</p>

<p>A good migration plan is not just a list of applications. It is a sequenced traversal of an architecture model, supported by evidence, dependency visibility, and continuous challenge.</p>

<p>That is the difference between a wave plan that looks reasonable in PowerPoint and one that survives contact with execution.</p>

<p><a href="https://cloudhpc.news/designing-safer-cloud-migration-waves-with-waltz-dependency-mapping-and-ai-agents/">Read the full article on cloudhpc.news</a></p>

<hr />

<p><em>#CloudMigration #EnterpriseArchitecture #Waltz #AI #MigrationPlanning #ApplicationPortfolioManagement #DependencyMapping #CloudTransformation #ArchitectureGovernance</em></p>]]></content><author><name></name></author><category term="blog" /><category term="waltz" /><category term="cloud-migration" /><category term="enterprise-architecture" /><summary type="html"><![CDATA[Cloud migration wave planning often looks sensible on paper, until execution exposes the dependencies nobody fully mapped. In the latest post in my Waltz-based cloud migration series, I look at why migration waves should not be built only around team preference, application priority, or technical readiness.]]></summary></entry><entry><title type="html">Where AI and Machine Learning Fit in Waltz-Based Cloud Migration Planning</title><link href="http://waltz.finos.org/waltz/blog/waltz/cloud-migration/ai/enterprise-architecture/2026/05/19/ai-ml-cloud-migration.html" rel="alternate" type="text/html" title="Where AI and Machine Learning Fit in Waltz-Based Cloud Migration Planning" /><published>2026-05-19T00:00:00+00:00</published><updated>2026-05-19T00:00:00+00:00</updated><id>http://waltz.finos.org/waltz/blog/waltz/cloud-migration/ai/enterprise-architecture/2026/05/19/ai-ml-cloud-migration</id><content type="html" xml:base="http://waltz.finos.org/waltz/blog/waltz/cloud-migration/ai/enterprise-architecture/2026/05/19/ai-ml-cloud-migration.html"><![CDATA[<p><a href="https://cloudhpc.news/where-ai-and-machine-learning-fit-in-waltz-based-cloud-migration-planning/"><img src="https://cloudhpc.news/content/images/size/w2000/2026/05/header.png" alt="AI and Machine Learning in Cloud Migration" /></a></p>

<p>AI and machine learning have become almost unavoidable in cloud migration conversations, but where do they genuinely add value, and where do they risk becoming a distraction?</p>

<p>In this fourth article in my Waltz-based cloud migration series, I look at how AI and ML can support architecture-led migration planning without replacing the human judgement that makes the model defensible.</p>

<p><strong>The key point: AI does not remove the architecture problem. It reduces the cost of building and maintaining the architecture view.</strong></p>

<p>Used well, AI can help with:</p>

<ul>
  <li>First-pass readiness assessments</li>
  <li>Dependency extraction</li>
  <li>Anomaly detection</li>
  <li>Natural-language querying</li>
  <li>Migration artefact generation</li>
</ul>

<!--more-->

<p>Used badly, it creates confident-sounding outputs with no evidence trail, no accountability, and no governance value.</p>

<p>The right question is not <em>“what can AI do for cloud migration?”</em></p>

<p>It is: <em>“what does the migration programme need to do well, and where can AI accelerate that work without weakening the governance behind it?”</em></p>

<p>Read the full article: <a href="https://cloudhpc.news/where-ai-and-machine-learning-fit-in-waltz-based-cloud-migration-planning/">Where AI and Machine Learning Fit in Waltz-Based Cloud Migration Planning</a></p>

<hr />

<p><em>#EnterpriseArchitecture #CloudMigration #AI #MachineLearning #GenerativeAI #CloudStrategy #DigitalTransformation #ApplicationPortfolioManagement #ArchitectureGovernance #DataDrivenDecisionMaking #Waltz #TechnologyStrategy</em></p>]]></content><author><name></name></author><category term="blog" /><category term="waltz" /><category term="cloud-migration" /><category term="ai" /><category term="enterprise-architecture" /><summary type="html"><![CDATA[AI and machine learning have become almost unavoidable in cloud migration conversations, but where do they genuinely add value, and where do they risk becoming a distraction? In this fourth article in my Waltz-based cloud migration series, I look at how AI and ML can support architecture-led migration planning without replacing the human judgement that makes the model defensible. The key point: AI does not remove the architecture problem. It reduces the cost of building and maintaining the architecture view. Used well, AI can help with: First-pass readiness assessments Dependency extraction Anomaly detection Natural-language querying Migration artefact generation]]></summary></entry><entry><title type="html">Using Waltz to Assess Cloud Readiness Across an Application Portfolio</title><link href="http://waltz.finos.org/waltz/blog/waltz/cloud-migration/enterprise-architecture/2026/05/12/cloud-readiness-assessment.html" rel="alternate" type="text/html" title="Using Waltz to Assess Cloud Readiness Across an Application Portfolio" /><published>2026-05-12T00:00:00+00:00</published><updated>2026-05-12T00:00:00+00:00</updated><id>http://waltz.finos.org/waltz/blog/waltz/cloud-migration/enterprise-architecture/2026/05/12/cloud-readiness-assessment</id><content type="html" xml:base="http://waltz.finos.org/waltz/blog/waltz/cloud-migration/enterprise-architecture/2026/05/12/cloud-readiness-assessment.html"><![CDATA[<p><a href="https://cloudhpc.news/using-waltz-to-assess-cloud-readiness-across-an-application-portfolio/"><img src="https://cloudhpc.news/content/images/size/w2000/2026/05/Cloud-readiness-header-1.png" alt="Cloud Readiness Assessment" /></a></p>

<p>Cloud migration programmes usually start with one question: which applications are ready to move?</p>

<p>It rarely has a simple answer.</p>

<!--more-->

<p>An application can be technically pristine but regulatorily blocked. Business-critical but operationally fragile. Cloud-ready but close to retirement. A single “ready/not ready” score hides exactly the distinctions you need to make a migration plan you can defend.</p>

<p>Our latest post sets out a practical readiness model built in Waltz, scoring applications across six dimensions: <strong>technical</strong>, <strong>operational</strong>, <strong>business</strong>, <strong>lifecycle</strong>, <strong>dependency</strong>, and <strong>regulatory</strong>. Mapping the result to an eight-value rating scheme that points directly to a treatment: rehost, replatform, refactor, replace, retain, or retire.</p>

<p>The aim is not another framework. It is a model that helps you:</p>

<ul>
  <li>Separate strong migration candidates from blockers</li>
  <li>Surface low-ROI applications</li>
  <li>Sequence migration waves on evidence rather than opinion</li>
</ul>

<p>Read the full article on <a href="https://cloudhpc.news/using-waltz-to-assess-cloud-readiness-across-an-application-portfolio/">here</a>.</p>

<p><code class="language-plaintext highlighter-rouge">#CloudMigration</code> <code class="language-plaintext highlighter-rouge">#EnterpriseArchitecture</code> <code class="language-plaintext highlighter-rouge">#Waltz</code></p>]]></content><author><name></name></author><category term="blog" /><category term="waltz" /><category term="cloud-migration" /><category term="enterprise-architecture" /><summary type="html"><![CDATA[Cloud migration programmes usually start with one question: which applications are ready to move? It rarely has a simple answer.]]></summary></entry><entry><title type="html">Cloud Migration Needs Enterprise Architecture Before Infrastructure</title><link href="http://waltz.finos.org/waltz/blog/waltz/case-study/cloud-migration/enterprise-architecture/2026/05/05/cloud-migration-enterprise-architecture-before-infrastructure.html" rel="alternate" type="text/html" title="Cloud Migration Needs Enterprise Architecture Before Infrastructure" /><published>2026-05-05T00:00:00+00:00</published><updated>2026-05-05T00:00:00+00:00</updated><id>http://waltz.finos.org/waltz/blog/waltz/case-study/cloud-migration/enterprise-architecture/2026/05/05/cloud-migration-enterprise-architecture-before-infrastructure</id><content type="html" xml:base="http://waltz.finos.org/waltz/blog/waltz/case-study/cloud-migration/enterprise-architecture/2026/05/05/cloud-migration-enterprise-architecture-before-infrastructure.html"><![CDATA[<p>Cloud migration is often framed as an infrastructure challenge.</p>

<p>But in many organisations, the real blocker is not the cloud platform. It is the lack of visibility across the application estate.</p>

<p>Before deciding what to move, where to host it, or how to sequence migration waves, teams need to understand:</p>

<ul>
  <li>Which applications exist</li>
  <li>Who owns them</li>
  <li>How critical they are to the business</li>
  <li>What condition they are in</li>
  <li>What data they use</li>
  <li>Which systems they depend on</li>
  <li>What regulatory or jurisdictional constraints apply</li>
</ul>

<!--more-->

<p>Without that architecture context, migration planning can quickly become spreadsheet-led, subjective, and risky.</p>

<p>See this follow-on article to the HMx Labs case study, we explore why successful cloud migration needs enterprise architecture before infrastructure, and how Waltz can help organisations build the evidence-based decision model needed to migrate with confidence.</p>

<p>Because you cannot migrate what you do not understand.</p>

<p>And you cannot govern what you cannot see.</p>

<p>Read the full article here:</p>

<p><a href="https://cloudhpc.news/why-cloud-migration-needs-enterprise-architecture-before-infrastructure/">Why cloud migration needs enterprise architecture before infrastructure</a></p>

<p>Related case study:</p>

<p><a href="https://hmxlabs.io/data/case-study/cloud-migration-waltz.html">Cloud migration case study with Waltz (HMx Labs)</a></p>]]></content><author><name></name></author><category term="blog" /><category term="waltz" /><category term="case-study" /><category term="cloud-migration" /><category term="enterprise-architecture" /><summary type="html"><![CDATA[Cloud migration is often framed as an infrastructure challenge. But in many organisations, the real blocker is not the cloud platform. It is the lack of visibility across the application estate. Before deciding what to move, where to host it, or how to sequence migration waves, teams need to understand: Which applications exist Who owns them How critical they are to the business What condition they are in What data they use Which systems they depend on What regulatory or jurisdictional constraints apply]]></summary></entry><entry><title type="html">Screencast: Waltz Changes - Q1 2023</title><link href="http://waltz.finos.org/waltz/blog/waltz/screencast/2023/04/03/whats-new-q1-23.html" rel="alternate" type="text/html" title="Screencast: Waltz Changes - Q1 2023" /><published>2023-04-03T00:00:00+00:00</published><updated>2023-04-03T00:00:00+00:00</updated><id>http://waltz.finos.org/waltz/blog/waltz/screencast/2023/04/03/whats-new-q1-23</id><content type="html" xml:base="http://waltz.finos.org/waltz/blog/waltz/screencast/2023/04/03/whats-new-q1-23.html"><![CDATA[<h1 id="overview">Overview</h1>

<p>Waltz 1.48 (late March 2023) introduces several new features and some important fixes.</p>

<!--more-->

<h2 id="screencast">Screencast</h2>

<p>This 10 minute screencast gives a quick overview of recent changes in 1.48 (and a few releases before that).</p>

<div class="youtube-embed">
  <iframe src="https://www.youtube-nocookie.com/embed/yL4s0lt51Ts?list=PLGNSioXgrIEfJFJCTFGxKzfoDmxwPEap4" title="Waltz 1.48" loading="lazy" referrerpolicy="strict-origin-when-cross-origin" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="">
  </iframe>
</div>

<h2 id="topics-covered">Topics covered:</h2>

<h3 id="report-grids">Report Grids</h3>

<p>Report grids have been improved, this screencast covers:</p>

<ul>
  <li>Cloning (copying existing grids)</li>
  <li>Derived Columns (computing cells from other values)</li>
  <li>Filter groups (saving the results of preset filters)</li>
</ul>

<h3 id="assessments">Assessments</h3>

<p>Assessments have been extended to support multi-valued results.<br />
The screencast give a quick overview of how they work and how they are configured.</p>

<h3 id="legal-entities">Legal Entities</h3>

<p>Allows linking applications to Legal Entities (i.e. via a Controlling Legal Entity Relationship).
The screencast covers:</p>

<ul>
  <li>Intro to Legal Entity Support</li>
  <li>Navigation</li>
  <li>Bulk loading</li>
</ul>

<h3 id="other">Other</h3>

<ul>
  <li>Waltz now allows users to view historic costs associated with groups of applications.</li>
  <li>Assessment overview widgets</li>
  <li>Discussion of improvements to the permission framework</li>
</ul>

<hr />

<p>You may also be interested in checking out the complete <a href="https://www.youtube.com/playlist?list=PLGNSioXgrIEfJFJCTFGxKzfoDmxwPEap4">Waltz playlist</a> on YouTube.</p>]]></content><author><name></name></author><category term="blog" /><category term="waltz" /><category term="screencast" /><summary type="html"><![CDATA[Overview Waltz 1.48 (late March 2023) introduces several new features and some important fixes.]]></summary></entry><entry><title type="html">10,000 Commits</title><link href="http://waltz.finos.org/waltz/blog/waltz/2022/08/26/10K.html" rel="alternate" type="text/html" title="10,000 Commits" /><published>2022-08-26T00:00:00+00:00</published><updated>2022-08-26T00:00:00+00:00</updated><id>http://waltz.finos.org/waltz/blog/waltz/2022/08/26/10K</id><content type="html" xml:base="http://waltz.finos.org/waltz/blog/waltz/2022/08/26/10K.html"><![CDATA[<p>We are pleased to announce that the Waltz project has just hit 10,000 commits.</p>

<!--more-->

<p><img src="/blog/assets/images/10K/10K.png" alt="10K" /></p>

<p>Each commit represents a small step on our 7 year journey from project inception to where we are now.</p>

<p>Some highlights along the way include:</p>

<ul>
  <li>50+ releases</li>
  <li>Over 50K users using Waltz in a production setting</li>
  <li>Placing the project under the <a href="https://www.finos.org">FINOS</a> organisation</li>
  <li>Many new features and enhancements</li>
</ul>

<p>We would like to thank all those who have contributed to Waltz, either directly through code, via issues raised or just through reaching out to our team and giving us feedback.</p>

<p>Looking forward to see what the next 10K commits will bring!</p>]]></content><author><name></name></author><category term="blog" /><category term="waltz" /><summary type="html"><![CDATA[We are pleased to announce that the Waltz project has just hit 10,000 commits.]]></summary></entry><entry><title type="html">Viewing Waltz Flow data in Solidatus</title><link href="http://waltz.finos.org/waltz/blog/waltz/2022/08/26/solidatus.html" rel="alternate" type="text/html" title="Viewing Waltz Flow data in Solidatus" /><published>2022-08-26T00:00:00+00:00</published><updated>2022-08-26T00:00:00+00:00</updated><id>http://waltz.finos.org/waltz/blog/waltz/2022/08/26/solidatus</id><content type="html" xml:base="http://waltz.finos.org/waltz/blog/waltz/2022/08/26/solidatus.html"><![CDATA[<p><a href="https://www.solidatus.com/">Solidatus</a> is a fantastic piece of software for understanding your organizations data lineage:</p>

<!--more-->

<blockquote>
  <p>Using Solidatus, you can quickly create data blueprints that map how your data flows, and how it’s affected, as it moves around your systems, both now and at other points in time.</p>
</blockquote>

<blockquote>
  <p>By revealing hidden opportunities, threats, and the impact of change, a Solidatus lineage blueprint delivers clarity and an enriched understanding of your data ecosystem, so you can optimize your infrastructure, operate more efficiently, and minimize risk.</p>
</blockquote>

<p><a href="https://www.linkedin.com/in/howard-guess-63bb39182/">Howard Guess</a> has taken the Waltz sample data and imported it into a Solidatus instance.</p>

<p><img src="/blog/assets/images/solidatus/solidatus.png" alt="Solidatus" /></p>

<p>The instance that Howard has set up is available at on a <a href="https://trial.solidatus.com/viewer/share/BMXLwTa12Hcyt7U1vCFsg3UjKF6xyWiG">Solidatus demo instance</a>.</p>]]></content><author><name></name></author><category term="blog" /><category term="waltz" /><summary type="html"><![CDATA[Solidatus is a fantastic piece of software for understanding your organizations data lineage:]]></summary></entry><entry><title type="html">Screencast: Waltz Tour</title><link href="http://waltz.finos.org/waltz/blog/waltz/screencast/2022/04/19/tour.html" rel="alternate" type="text/html" title="Screencast: Waltz Tour" /><published>2022-04-19T00:00:00+00:00</published><updated>2022-04-19T00:00:00+00:00</updated><id>http://waltz.finos.org/waltz/blog/waltz/screencast/2022/04/19/tour</id><content type="html" xml:base="http://waltz.finos.org/waltz/blog/waltz/screencast/2022/04/19/tour.html"><![CDATA[<h1 id="waltz-tour">Waltz Tour</h1>

<p>Over the course of 20 minutes, <a href="https://www.linkedin.com/in/mark-guerriero-2289421a/">Mark Guerriero</a> takes us on a tour of Waltz features and gives valuable insights and tips on how Waltz can be used in your enterprise.</p>

<!--more-->

<p>Topics covered:</p>

<ul>
  <li>Homepage</li>
  <li>Actions (surveys and attestations)</li>
  <li>Viewpoints (org units, taxonomies)</li>
  <li>Application overviews
    <ul>
      <li>Assessments</li>
      <li>Attestations</li>
      <li>Change Initiatives</li>
      <li>Bookmarks</li>
      <li>Costs</li>
      <li>Data Flows</li>
      <li>Indicators / Stats</li>
      <li>People</li>
      <li>Ratings</li>
      <li>Technology (servers, databases, software)</li>
      <li>Changes</li>
    </ul>
  </li>
  <li>Aggregate Views
    <ul>
      <li>Org Units</li>
      <li>Taxonomies</li>
    </ul>
  </li>
</ul>

<div class="youtube-embed">
  <iframe src="https://www.youtube-nocookie.com/embed/zEkWLdDwW9o" title="Waltz Tour" loading="lazy" referrerpolicy="strict-origin-when-cross-origin" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="">
  </iframe>
</div>

<hr />

<p>You may also be interested in checking out the complete <a href="https://www.youtube.com/playlist?list=PLGNSioXgrIEfJFJCTFGxKzfoDmxwPEap4">Waltz playlist</a> on YouTube.</p>]]></content><author><name></name></author><category term="blog" /><category term="waltz" /><category term="screencast" /><summary type="html"><![CDATA[Waltz Tour Over the course of 20 minutes, Mark Guerriero takes us on a tour of Waltz features and gives valuable insights and tips on how Waltz can be used in your enterprise.]]></summary></entry><entry><title type="html">Screencast: Report Grid Improvements</title><link href="http://waltz.finos.org/waltz/blog/waltz/screencast/2022/03/24/grid-enhancements.html" rel="alternate" type="text/html" title="Screencast: Report Grid Improvements" /><published>2022-03-24T00:00:00+00:00</published><updated>2022-03-24T00:00:00+00:00</updated><id>http://waltz.finos.org/waltz/blog/waltz/screencast/2022/03/24/grid-enhancements</id><content type="html" xml:base="http://waltz.finos.org/waltz/blog/waltz/screencast/2022/03/24/grid-enhancements.html"><![CDATA[<h1 id="waltz-140-report-grid-enhancements">Waltz 1.40 Report Grid Enhancements</h1>

<p>A large part of the recent <a href="https://github.com/finos/waltz/releases/tag/1.40">1.40 release</a> of Waltz was focused around Report Grids.
Notable enhancements are:</p>

<ul>
  <li>support for Change Initiatives,</li>
  <li>app group / data type / metadata column support</li>
  <li>improved filtering and sharing grids with other users</li>
</ul>

<!--more-->

<p>The screencast below gives an overview of grids; how to use them and how to create them.</p>

<div class="youtube-embed">
  <iframe src="https://www.youtube-nocookie.com/embed/q-n5aUQgc9o" title="Waltz Report Grids" loading="lazy" referrerpolicy="strict-origin-when-cross-origin" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="">
  </iframe>
</div>

<hr />

<p>You may also be interested in checking out the complete <a href="https://www.youtube.com/playlist?list=PLGNSioXgrIEfJFJCTFGxKzfoDmxwPEap4">Waltz playlist</a> on YouTube.</p>]]></content><author><name></name></author><category term="blog" /><category term="waltz" /><category term="screencast" /><summary type="html"><![CDATA[Waltz 1.40 Report Grid Enhancements A large part of the recent 1.40 release of Waltz was focused around Report Grids. Notable enhancements are: support for Change Initiatives, app group / data type / metadata column support improved filtering and sharing grids with other users]]></summary></entry><entry><title type="html">Developers: Database process enhancements</title><link href="http://waltz.finos.org/waltz/blog/waltz/dev/jooq/liquibase/2022/02/18/database-dev.html" rel="alternate" type="text/html" title="Developers: Database process enhancements" /><published>2022-02-18T00:00:00+00:00</published><updated>2022-02-18T00:00:00+00:00</updated><id>http://waltz.finos.org/waltz/blog/waltz/dev/jooq/liquibase/2022/02/18/database-dev</id><content type="html" xml:base="http://waltz.finos.org/waltz/blog/waltz/dev/jooq/liquibase/2022/02/18/database-dev.html"><![CDATA[<h1 id="intro">Intro</h1>

<p>We’ve recently been focussed on making Waltz more welcoming to newcomers.  Part of that has been through enhancing our getting-started processes with the aid of some fantastic contributions from the Waltz community. In particular:</p>

<ul>
  <li>Docker images are now published as part of each release via GitHub actions.  Thanks to <a href="https://github.com/ljubon">Ljubo Nikolic</a> for this great <a href="https://github.com/finos/waltz/pull/5801">contribution</a></li>
  <li>We are working with <a href="https://canonical.com/">Canonical</a> to offer Waltz as a <a href="https://juju.is/">JuJu Charm</a>.  See the <a href="https://github.com/finos/waltz/issues/5911">working group</a> and this <a href="https://github.com/finos/waltz-integration-juju">sub-project</a> for more information</li>
</ul>

<!--more-->

<p>However, in this post we wish to focus on how we are improving our documentation and taking a look at some database related process enhancements.</p>

<h1 id="database-documentation">Database documentation</h1>

<p><strong>Liquibase</strong></p>

<p>Beginning in Waltz 1.40 we are adding table and columns level documentation to our database definitions.  To add this documentation we will be using two features of <a href="https://liquibase.org/">Liquibase</a>:</p>

<ul>
  <li><a href="https://docs.liquibase.com/change-types/set-table-remarks.html">Table remarks</a> - sets table level documentation</li>
  <li><a href="https://docs.liquibase.com/change-types/set-column-remarks.html">Column remarks</a> - sets column level documentation</li>
</ul>

<p>An example of what this looks like for a single table (e.g. <code class="language-plaintext highlighter-rouge">entity_hierarchy</code>) is shown below:</p>

<p><img src="/blog/assets/images/database-remarks/liquibase.png" alt="liquibase" /></p>

<p>Liquibase transforms these commands to the appropriate dbms specific statements.  These statements can be written to a DDL script or applied directly to the database.  After applying these changes we can see the documentation is now available:</p>

<p><img src="/blog/assets/images/database-remarks/table.png" alt="table" /></p>

<p><strong>jOOQ Codegen</strong></p>

<p>One unexpected benefit of documenting our database objects is that <a href="https://www.jooq.org/">jOOQ</a> is taking the table and column docs and including them in the generated code.</p>

<p><img src="/blog/assets/images/database-remarks/jooq.png" alt="jOOQ" /></p>

<p>As you can see this will be a great help in the dev process, especially when dealing wit less frequently used tables and columns.</p>

<h1 id="multi-vendor-database-migration-support">Multi Vendor Database migration support</h1>

<p>The above screenshots were taken whilst working on the issue:  <a href="https://github.com/finos/waltz/issues/5916">Entity Hierarchy: show level of both ancestor and descendant node #5916</a>.  This issue adds a new (non-nullable) column to our entity hierarchy table to represent the level of the descendant node.  We wished to ensure that Waltz correctly updates this column for any pre-existing data.  The update is performed by a Liquibase task which can run arbitrary sql.  However, the syntax of the update statements varies between database vendors so we need a few variants of the statement (the appropriate variant is selected by Liquibase via the <code class="language-plaintext highlighter-rouge">dbms</code> attribute on <em>changesets</em>).</p>

<p><strong>jOOQ Translate</strong></p>

<p>Luckily the jOOQ website has a <a href="https://www.jooq.org/translate/">superb page</a> which translates SQL statement written in one dialect to another.  Keen to give this a try we wrote the migration script for Postgres (1) and requested a translation to SQL Server (2).  We quickly tested the resultant statement to ensure it worked and included it in our liquibase script.</p>

<p><img src="/blog/assets/images/database-remarks/jooq-translate.png" alt="jOOQ Translate" /></p>

<p>We will definitely be using this feature again as it saves so much effort.  As we are heavy users of jOOQ within Waltz we have huge confidence in the ability of this tool to generate correct output even for complex statements.</p>

<h1 id="conclusion">Conclusion</h1>

<p>We hope this has shown you how we are making steps to improve our development process by improving our documentation and streamlining our database migration script authoring.  If you have any questions reach out to us via our <a href="https://github.com/finos/waltz/issues/new">GitHub issues page</a>.</p>]]></content><author><name></name></author><category term="blog" /><category term="waltz" /><category term="dev" /><category term="jooq" /><category term="liquibase" /><summary type="html"><![CDATA[Intro We’ve recently been focussed on making Waltz more welcoming to newcomers. Part of that has been through enhancing our getting-started processes with the aid of some fantastic contributions from the Waltz community. In particular: Docker images are now published as part of each release via GitHub actions. Thanks to Ljubo Nikolic for this great contribution We are working with Canonical to offer Waltz as a JuJu Charm. See the working group and this sub-project for more information]]></summary></entry></feed>