Showing posts with label data. Show all posts
Showing posts with label data. Show all posts

Realworld AI Coding Agent Exercise

Mike's Notes

An open-source version of Virtuoso will be installed in the data centre to explore possibilities. Kingsley Uyi Idehen's articles are all fascinating. I first came across him via the Ontology Forum.

The original post on LinkedIn has more links.

Resources

References

  • Reference

Repository

  • Home > Ajabbi Research > Library >
  • Home > Handbook > 

Last Updated

08/04/2026

Realworld AI Coding Agent Exercise

By: Kingsley Uyi Idehen
LinkedIn: 07/02/2026

Founder & CEO at OpenLink Software | Driving GenAI-Based AI Agents | Harmonising Disparate Data Spaces (Databases, Knowledge Bases/Graphs, and File System Documents).

This post explains how I used Claude Code (Pro level, powered by Opus 4.5) and Mistral Vibe (whenever Claude Code rate limits kicked in) to modernize the aesthetics of our uniquely powerful faceted search and browsing interface for knowledge graph exploration—essentially giving the UI around the core engine a facelift.

At OpenLink Software, we strongly believe that LLM-powered AI Agents are exactly the right tools for tackling this long-standing challenge—provided the RDF-based knowledge graph runs on a platform that isn’t constrained by dataset size. In other words, one that scales naturally in linear fashion—such as our Virtuoso multi-model platform for managing data spaces spanning databases, knowledge bases, filesystems, and APIs.

Situation Analysis

As with many aspects of RDF (Resource Description Framework), challenges in tooling creation often stem from general misunderstandings about the framework itself. RDF-based knowledge graph representation is one such area, and linear visualization is another.

In the case of linear visualization, the goal is to present the description of an entity of interest (the subject) along with its associated attributes—i.e., predicate–object pairings that express attribute names and values.

Compounding the difficulty is the fact that, although faceted search UI/UX patterns have long served as the conceptual foundation, implementing them at the scale typical of RDF-based knowledge graphs remains extremely challenging. This challenge is further amplified by the complexity of delivering such interfaces in HTML leveraging CSS and JavaScript.

Virtuoso's Faceted Search & Browsing System Workings

Fundamentally, this system allows you to perform text search, attribute-name lookup, or entity-identifier–based exploration across one or more knowledge graphs hosted in a Virtuoso instance. It provides a property-sheet–style interface that presents entities (subjects) alongside their associated attributes (relationship predicates) and values (objects).

Thanks to Linked Data principles, hyperlink-based denotation of entities, attributes, and values (optionally) creates a Web of data. This enables the same “click and explore” experience—also known as the follow-your-nose exploration pattern—that users enjoy when interacting with web pages through a browser.

Old System

Here are screenshots depicting the UI/UX for a simple search sequence along the following lines:

  • Text Search Input: Virtuoso.

  • Initial matches presented in a list, sorted by text score and entity rank (think: page rank for data).

  • Add filters by attributes such as "type" (rdf:type) and "name" (schema:name) where the name value is "Virtuoso".

  • Click on item from the result to obtain a description of Virtuoso via the entity description property sheet based page.

New System

Original resource: New Virtuoso Faceted Browser Showcase Screencast

Here's the same demonstration sequence, but experienced via the revamped UI/UX.

  • Text Search Input: Virtuoso.

  • Initial matches presented in a list, sorted by text score and entity rank (think: page rank for data).

  • Add filters by attributes such as "type" (rdf:type) and "name" (schema:name) where the name value is "Virtuoso".

  • Click on item from the result to obtain a description of Virtuoso via the entity description property sheet based page.

Additional Notable Faceted Search & Browsing Features

These include the following:

  1. Handling the fact that lots of attributes (thousands+) could be associated with an entity sources for a massive collection of source knowledge graphs during the filtering stage via a sticky scrollable paging control
  2. Handling the fact that a select entity description can also comprise lots of attributes (thousands+) via a stickly scrollable paging control
  3. Spreadsheet-like table (with resizable, moveable, and sort enabling columns) for handling query results from filtering or when presenting entity descriptions
  4. Ability to export the description of an entity in a variety of formats (JSON-LD, RDF-Turtle, RDF-XML, N-Triples, RDF/JSON, CSV, etc)
  5. Permalinking for sharing interaction state e.g., a filter page or entity description page
  6. Ability to reveal underling SPARQL query that drives filtering
  7. Metadata that provides information on source named graph(s) from which attributes and values have been sourced for an entity description by way of entity (subject) or value (object) role in the source graph triples
  8. Metadata that automatically identifies explicit (via owl:sameAs attribute values) coreferences (via values of attributes that are uniquely identifying i.e., inverse-functional e.g., email addresses or any other attribute with the inverse-functional designation in a loaded ontology)
  9. Settings for enabling or disabling reasoning and inference informed by built-in or custom inference rules

The Refactoring Process

I achieved this very difficult refactoring task, alongside my other daily duties, by prompting Claude Code and Mistral. Claude Code (using the Opus 4.5 model) handled most of the heavy refactoring and planning work through the initial working ports.

I brought Mistral on board once rate limits kicked in, which became an important part of the experiment—namely, determining what’s possible with the Pro edition of Claude Code.

That said, Mistral also impressed me to the point where I see it as the closest rival to Claude Code in the battle for coding agent market dominance. Its CLI aesthetics and assistance mode are top-notch.

Live Demonstration Instances

URIBurner

This is a live Virtuoso instance since 2008 functioning as a Linked Data utility showcase and bridge to the massive Linked Open Data Cloud Knowledge Graph collective.

  1. Text Search: Virtuoso
  2. Entity Types associated with text pattern: Virtuoso
  3. Attribute Filtering on Type, Name, and Value: Virtuoso Universal Server (Row Store & Cluster Server Edition)
  4. Selected Entity Description Page

Conclusion

Software development is evolving before our eyes. True power now comes from pairing capable AI Agents with human expertise—letting judgment guide automation, producing dependable outcomes, and delivering real-world value. The age of AI isn’t just about smarter tools; it’s about amplifying what humans do best.

Design for the People: The US Web Design System and the Public Sans Typeface

Mike's Notes

The article reproduced below is from a fascinating website and is about another useful Design System.

Resources

References

  • Reference

Repository

  • Home > Ajabbi Research > Library >
  • Home > Handbook > 

Last Updated

16/03/2026

Design for the People: The US Web Design System and the Public Sans Typeface

By: Jon Keegan
On a Sandy Beach: 02/07/2024

Jon Keegan is an investigative data journalist who covers technology. His work has appeared in The Wall Street Journal, The Markup and MIT Technology Review. Jon’s work has won several journalism awards, including the Loeb Award, the Society of Professional Journalists’ Excellence in Journalism Award and the Society of News Design’s Best of Digital Gold Award.

The United States has an official web design system and a custom typeface that belongs to the people. This thoughtful public design system aims to make government websites not only look good, but to make them accessible and functional for all.

Before the internet, Americans may have interacted with the federal government by stepping into grand buildings adorned with impressive stone columns and gleaming marble floors. Today, the neoclassical architecture of those physical spaces has been replaced by the digital architecture of website design – HTML code, tables, forms, and buttons. 

While people visiting a government website to apply for student loans, research veterans’ benefits, or enroll in Medicare may not notice these digital elements, they play a crucial role. If a website is buggy or doesn’t work on your phone, taxpayers cannot access the services they have paid for. This can feel like walking up to a boarded-up government building with broken windows, creating a negative impression of the government itself.  

 In the US, there are about 26,000 federal websites. Early on, each site had its own designs, fonts, and login systems, creating frustration for the public, and wasting government resources.

 A survey of the many different styles of buttons from government websites as of 2015. Source: 18F / GSA 

The troubled launch Healthcare.gov in 2013 highlighted the need for a better way to build government digital services. In 2014, President Obama created two new teams to help improve government tech.

Within the General Services Administration (GSA), a new team called 18F (named for their Washington, DC office at 1800 F Street) was created to “collaborate with other agencies to fix technical problems, build products, and improve public service through technology.” The team was built to move at the speed of tech start-ups rather than lumbering bureaucratic agencies. 

The U.S. Digital Service (USDS) was tasked “to deliver better government services to the American people through technology and design.” In 2015, the two teams collaborated to build the US Web Design System (USWDS)—a style guide and collection of user interface components and design patterns to ensure a consistent user experience across government websites. “Inconsistency is felt, even if not always precisely articulated in usability research findings,” said Dan Williams, the USWDS program lead, in an email. 

Some of the sample design elements for the USWDS. Source: https://designsystem.digital.gov/

Today, the system defines 47 user interface components such as buttons, alerts, search boxes and forms each with their own design examples, sample code and guidelines such as “Be polite” and “Don’t overdo it.” The USWDS is now in its third iteration, and is used in 160 government websites. “As of September 2023, 94 agencies use USWDS code, and it powers about 1.1 billion pageviews on federal websites,” said Williams.

USWDS design principles include focusing on real users’ needs, earning trust and embracing accessibility. The system requires websites to be optimized for all users, including people with disabilities such as those using screen readers or those with color blindness. Williams said accessibility is important to the team’s efforts, noting that they “prioritize any accessibility-related bug or improvement we find (or is contributed by our community).”






Some federal websites that use the USWDS. Clockwise from top left: Va.gov, Medicaid.gov, Worker.gov, Supremecourt.gov

To ensure clear and consistent typography, the free and open-source typeface Public Sans was created for the US government. “It started as a design experiment,” said Williams, who designed the typeface, which was released in 2019. “We were interested in trying to establish an open source solution space for a typeface, just like we had for the other design elements in the design system,” said Williams. Based on the Libre Franklin typeface, Public Sans is described as “a strong, neutral, principles-driven, open-source typeface for text or display.” 


Both Public Sans and the USWDS embrace transparency and collaboration with government agencies and the public, inviting contributions to their development via the projects’ GitHub pages. 

To ensure that the hard-learned lessons of improving public technology aren’t forgotten, the projects embrace continuous improvement. One of Public Sans’ design principles offers key guidance in this area: “Strive to be better, not necessarily perfect.”

The Dark Data Tax: How Hoarding is Poisoning Your AI

Mike's Notes

This is a very big problem. Unstructured data.

Resources

References

  • Reference

Repository

  • Home > Ajabbi Research > Library > Subscriptions > Data Engineering Weekly
  • Home > Handbook > 

Last Updated

12/12/2025

The Dark Data Tax: How Hoarding is Poisoning Your AI

By: Ananth Packkildurai
Data Engineering Weekly: 19/11/2025

Ananth Packkildurai is a data engineering leader, writer, and author of Data Engineering Weekly, sharing insights on modern data platforms, large-scale pipelines, and AI-driven architectures.

Storage is cheap. Attention is finite. Hallucinations are expensive. It’s time to stop building Data Lakes and start managing Data Metabolism.

With the increased adoption of the Lakehouses, we removed the last constraint on data accumulation.

We didn’t realize we were removing the last constraint on data obesity. The numbers are staggering. Enterprises now store 2.5 times more data than they did in 2019, yet the velocity of decisions derived from that data hasn’t just slowed—it has flatlined. According to IDC, global data storage capacity is estimated to reach 175 zettabytes by 2025, with 80% of that data unstructured. Furthermore, IDC predicts that 90% of unstructured data will remain unanalyzed.

This is data obesity: the condition where an organization accumulates data faster than it can derive value from it. It’s not a storage problem. It’s a metabolic one.

When Storage Became Infinite, Attention Became Finite

The obesity crisis began with the Lakehouse. Built on the triumvirate of S3, ADLS, and GCS, and crowned with Delta Lake, Iceberg, and Hudi, the Lakehouse solved data engineering’s oldest constraint: where to put the data. Object storage made retention elastic and nearly free. The cost of a gigabyte has fallen by 80% over the past decade, while enterprise data volume has grown by 250%.

However, the Lakehouse didn’t just lower costs—it removed the psychological barrier to data collection. When a terabyte costs less than a pizza, no one asks hard questions before ingesting. When schema evolution is automatic, there’s no migration friction to discourage table sprawl. When time travel promises infinite rollback, deletion feels like the destruction of potential value.

The result is a modern manifestation of Jevons’ Paradox: as storage became more efficient, our appetite for data expanded even more rapidly. We’ve built systems that can collect anything, but can’t measure whether that collection matters.

The Hidden Cost of Free Storage

Here’s what Lakehouse architecture diagrams don’t show: storage accounts for only 8% of the total cost of ownership. The remaining 92% is the human and computational effort to transform bytes into decisions—costs that scale with complexity, not volume.

This is the first symptom of data obesity: operational debt. Dark datasets don’t just sit there; they demand maintenance, schema migrations, and compliance audits. They clog your information schema, slow down your metastore, and multiply the blast radius of every infrastructure change.

The LLM Hunger Games: When Predators Can’t Hunt

Datology AI’s seminal research demonstrated that model performance doesn’t scale with dataset size—it scales with signal density.

Their experiments demonstrated that a curated 100TB corpus consistently outperformed a raw 1PB dataset, resulting in a 40% reduction in training time and a 35% reduction in inference costs. Redundant, inconsistent, or low-quality data not only slows training but also actively degrades performance through gradient noise.

Despite this evidence, enterprise adoption of LLMs has amplified data obesity rather than containing it. The prevailing architectural pattern—vectorizing entire document corpora and connecting models through RAG pipelines—assumes maximal data exposure is optimal. This leads to embedding every PDF, support ticket, and communication archive without evaluating the utility of the information.

The result is a predator that consumes indiscriminately but digests inefficiently. When an LLM retrieves three conflicting definitions of “active user” from dark, ungoverned partitions, the model doesn’t resolve the conflict—it synthesizes them into authoritative-sounding errors. The 68% of dark data that plagues analytics now introduces hallucination vectors into AI systems.

The Dark Data Tax: Internal Data Poisoning

Consider the technical mechanics. An AI agent tasked with “analyzing customer churn” might query 200 tables across your Lakehouse, resulting in massive compute costs. But if 80% of those tables are dark—poorly documented, schema-drifted, or semantically redundant—the agent spends valuable inference cycles disambiguating rather than analyzing.

This is where the danger lies. Recent research on model robustness (such as findings from Anthropic) indicates that even a small fraction of incoherent data in the context window can disproportionately degrade output quality.

Dark data effectively acts as internal data poisoning:

  • Context Contamination: When an LLM retrieves three conflicting definitions of “active user”—one from a live table and two from dark, ungoverned tables—it lacks the context to discern the truth.
  • The Hallucination Vector: Instead of ignoring the noise, the model attempts to reconcile it, averaging the conflicting signals into authoritative-sounding nonsense.

This creates a severe form of cognitive debt. Dark data doesn’t just waste storage; it actively sabotages the insights derived from your good data. By introducing these “hallucination vectors,” you are effectively feeding your predator garbage, and the resulting insights are not just expensive—they are fundamentally compromised.

If data poisoning is the pathology of the individual model, we need a different framework to understand the collapse of the entire ecosystem. Ecology solved this problem a century ago.

The Predator-Prey Framework: Diagnosing Obesity

To transition from vague awareness to precise diagnosis, we require a model that captures how data systems become imbalanced. Ecology solved this problem a century ago.

In the 1920s, Alfred Lotka and Vito Volterra developed elegant equations that described predator-prey dynamics, explaining why ecosystems collapse when one species outnumbers the other. The model maps uncannily onto data systems:

Data Volume (x) = Prey. Reproduces through ingestion, replication, and instrumentation.

Data Value (y) = Predators. Analysts, models, and decision pipelines that rely on data to thrive.

The equations:

dx/dt = αx - βxy

dy/dt = δxy - γy

Where:

  • α = Prey growth rate (your ingestion velocity)
  • β = Predation rate (how easily analysts discover and query data)
  • δ = Conversion efficiency (how well analytics become decisions)
  • γ = Value decay (how quickly insights become stale)

The Emergence of Dark Data

Dark data isn’t just “unused data”—it’s the prey population that grows unchecked when predation fails to occur. In the equation dx/dt = αx - βxy, the term βxy represents data consumption and conversion into a value. When this term is too small relative to αx, the system experiences prey overpopulation.

Mathematically, dark data is the excess when:

αx >> βxy → dx/dt ≈ αx

In plain terms, your ingestion rate (α) is high, but your effective consumption rate (β) is low. The xy term depends on both available data (x) and active predators (y). When you have 10,000 tables but only 200 active analysts, even if each analyst works at maximum capacity, βxy cannot offset αx.

The Predator Starvation Crisis

The second equation, dy/dt = δxy - γy, predicts the consequence. When dark data grows, it doesn’t just increase x—it contaminates xy. The δ term (conversion efficiency) drops because analysts spend more time navigating noise. The γ term (value decay) increases because insights become obsolete more quickly in a chaotic environment.

The result: dy/dt becomes negative—your organization’s ability to create value from data actually declines, even as you add more data.

This framework transforms dark data from a storage problem into an ecological pathology. Your data isn’t just unused—it’s overpopulated prey, starving your predators.

The Data Sustainability Index: Measuring Metabolic Health

If we use predator-prey dynamics to diagnose data obesity, we need a metric to measure its severity. We cannot manage what we do not measure.

The Data Sustainability Index (DSI) metric quantifies the metabolic efficiency of your data ecosystem—measuring how much energy (compute) your data generates relative to the weight (cost & complexity) it adds.

The Formula

To calculate this, we track three specific variables:

The Predator Activity: Total Analytical Compute Hours (TACH)

This measures consumption, not storage. It captures every SQL warehouse second, Spark job, BI refresh, and model training cycle.

  • Why it matters: TACH is a proxy for demand. Even a failed query or an inefficient scan counts as “positive” here because it signals that a predator is attempting to feed.
  • The Rule: If TACH = 0, the dataset is biologically dead.

The Environmental Drag: Lakehouse Total Cost

We must account for the full burden of the ecosystem.

  • The Calculation: Storage + Ingestion Compute + Governance Overhead.
  • The Hidden Tax: Don’t just count cloud credits. A dataset that costs $500/month to store but requires 5 hours of engineering maintenance carries a massive “cognitive weight” that must be factored in.

The Punishment Multiplier: Active Dataset Ratio

This is the most critical component. It penalizes hoarding.

Formula: (Datasets with TACH > 0) / (Total Datasets)

If you have 10,000 tables but only query 1,200 of them, your Active Ratio is 12%. This mathematically crushes your DSI score, reflecting the reality that the 8,800 dark tables are creating noise that makes it harder to find the 12% of valuable data.

The Scorecard: How Healthy Are You?

Once you calculate your DSI, the results typically fall into three zones:

The Trajectory Warning: The absolute number matters less than the trend. If your DSI is declining month over month, it means your ingestion rate is outpacing your consumption rate. You aren’t scaling—you’re bloating.

Four Symptoms of Data Obesity

Dark data is the visible symptom of systemic metabolic failure. It manifests as four interlocking debts:

Operational Debt: The Cost of Unused Infrastructure

Unused datasets still demand pipeline maintenance, schema migrations, and dependency tracking. The obesity wasn’t just storage; it was engineering time diverted from value creation to waste management.

Cognitive Debt: The Tax on Every Decision

Analysts don’t just search for data—they sift through noise. When a data scientist needs “user_events” and finds 23 variations, the search cost becomes a tax on every decision. Studies in cognitive load theory show that decision quality degrades exponentially with choice overload. In obese ecosystems, analysts spend 40% of their time on data discovery and validation rather than analysis.

Compliance Risk: The Weight of Regulatory Exposure

GDPR and CCPA don’t care if you use personal data—only that you store it. A healthcare provider faced a $12M fine for retaining patient records in a “temporary” Lakehouse partition that had been dark for three years. Dark data is invisible to analytics but blindingly visible to auditors. Each unused dataset with PII is a latent liability.

Cultural Drift: The Normalization of Hoarding

Teams conflate “data-driven” with “data-hoarding.” Deleting a dataset feels riskier than keeping it because the cost of being wrong about deletion is visible (blame), while the cost of retention is invisible (slow decay). This creates a tragedy of the data commons, in which individual rationality produces collective dysfunction.

The Future: Autonomous Metabolic Management

As we instrument obesity metrics, we can automate weight management. Imagine a Data Obesity Controller:

Input Streams:

  • Real-time TACH telemetry
  • Decision attribution logs
  • Cost per table
  • Schema drift alerts

Control Actions:

  • Auto-archive dark datasets (reduce mass)
  • Suggest semantic model improvements (increase metabolism)
  • Alert on insight decay (prevent metabolic slowdown)
  • Recommend dataset deprecation (remove obesity)

This is the logical evolution of DataOps. We’ve spent a decade automating data production. The next decade belongs to automating data health.

Conclusion: The Healthiest Ecosystem is the Leanest

The obesity crisis teaches us a harsh truth: the organizations that thrive won’t be those with the largest lakes, but those with the highest metabolic rates.

The predator-prey framework gives us the language to diagnose this. The DSI gives us the metric to measure it. But the real work is cultural: we must stop celebrating data mass and start celebrating data muscle.

Wikipedia Structured Contents

Mike's Notes

Good news from Kaggle and Wikimedia. An opportunity to get structured data.

"...

As part of Wikimedia's mission to make all knowledge freely accessible and useful, Wikimedia is publishing a beta version of its structured content on Kaggle in French and English. This release gives data scientists, researchers, and machine learning enthusiasts a new, streamlined way to explore and analyze this global information resource.

..." - Kaggle.com

Resources

References

  • Reference

Repository

  • Home > 

Last Updated

18/04/2025

Wikipedia Structured Contents

By: Wikimedia Enterprise Team
Wikimedia Enterprises: 16/04/2025

Wikimedia Enterprise has released a new beta dataset on Kaggle, featuring structured Wikipedia content in English and French. Designed with machine learning workflows in mind, this dataset simplifies access to clean, pre-parsed article data that’s immediately usable for modeling, benchmarking, alignment, fine-tuning, and exploratory analysis.

This release is powered by our Snapshot API’s Structured Contents beta, which outputs Wikimedia project data in a developer-friendly, machine-readable format. Instead of scraping or parsing raw article text, Kaggle users can work directly with well-structured JSON representations of Wikipedia content—making this ideal for training models, building features, and testing NLP pipelines.The dataset upload, as of 15 April 2025, includes high-utility elements such as abstracts, short descriptions, infobox-style key-value data, image links, and clearly segmented article sections (excluding references and other non-prose elements). Because all content is derived from Wikipedia, it is freely licensed under Creative Commons Attribution-Share-Alike 4.0 and the GNU Free Documentation License (GFDL), with some additional cases where public domain or alternative licenses may apply.

“As the place the machine learning community comes for tools and tests, Kaggle is extremely excited to be the host for the Wikimedia Foundation’s data. Kaggle is already a top place people go to find datasets, and there are few open datasets that have more impact than those hosted by the Wikimedia Foundation. Kaggle is excited to play a role in keeping this data accessible, available and useful." - Brenda Flynn, Partnerships Lead, Kaggle

As a beta release, this dataset is an invitation to explore, test, and improve. We welcome feedback, questions, and suggestions from the Kaggle community directly in the dataset’s discussion tab.

Get the Dataset

Access the dataset directly on Kaggle

About Kaggle

Kaggle is home to one of the world’s largest communities of machine learning practitioners, researchers, and data enthusiasts. With millions of users and an expansive ecosystem of datasets, notebooks, and competitions—including challenges like the Arc Prize—Kaggle provides an ideal environment for experimenting with open structured data like Wikimedia’s Structured Content. Whether you’re testing a new architecture, evaluating data quality, or building a pipeline from scratch, this Wikipedia dataset is ready to plug into your process.

More info at Google Blog

Shadow Table Strategy for Seamless Service Extractions and Data Migrations

Mike's Notes

Here is an InfoQ article by Apoorv Mittal & Rafal Gancarz, referenced in Data Engineering Weekly. It covers a valuable way to migrate data while keeping critical production going. It is something to use in the future.

Resources

References


Repository

  • Home > Ajabbi Research > Library > Subscriptions >Data Engineering Weekly

Last Updated

14/04/2025

Shadow Table Strategy for Seamless Service Extractions and Data Migrations

By: Apoorv Mittal & Rafal Gancarz
InfoQ: 09/04/2025

Apoorv Mittal is a passionate Software Engineer at Block (CashApp) based in Seattle, WA. With over a decade of experience in distributed systems and fintech, he has led transformative projects at Block, Dropbox, and AWS. His expertise spans modernizing legacy systems into scalable microservices, architecting resilient financial infrastructures, and pioneering cloud security innovations, notably through his patented AWS Traffic Mirroring solution. You can find Apoorv on LinkedIn.

Key Takeaways

  • The shadow table strategy creates a synchronized duplicate of the data that keeps the production system fully operational during changes, enabling zero-downtime migrations.
  • Database triggers or change data capture frameworks actively replicate every change from the original system to the shadow table, ensuring data integrity.
  • The shadow table strategy supports diverse scenarios - including database migrations, microservices extractions, and incremental schema refactoring - that update live systems safely and progressively.
  • Shadow tables deliver stronger consistency and simplify recovery compared to dual-writes or blue-green deployments.
  • Industry case studies from GitHub, Shopify, and Uber demonstrate that the shadow table approach drives robust large-scale data migrations by actively maintaining continuous data integrity and offering rollback-friendly safeguards.

Introduction

Modern software systems often need to evolve without disrupting users. When you split a monolith into microservices or modify a database schema, you must migrate data with minimal downtime and risk. Shadow tables have emerged as a powerful strategy to achieve this. In a nutshell, the shadow table approach creates a duplicate of the data (a shadow version) and keeps it in sync with the original, allowing a smooth switchover once the new setup is ready.

This article explores how shadow tables help in different migration scenarios — database migrations, service extractions, and schema changes — while referencing real case studies and comparing this approach to alternatives like dual-writes, blue-green deployments, and event replay mechanisms.

What is the Shadow Table Strategy?

The shadow table strategy maintains a parallel copy of data in a new location (the "shadow" table or database) that mirrors the original system’s current state. The core idea is to feed data changes to the shadow in real time, so that by the end of the migration, the shadow data store is a complete, up-to-date clone of the original. At that point, you can seamlessly switch to the shadow copy as the primary source. In practice, implementing a shadow table migration typically follows a pattern:

  1. Create a Shadow Table: Prepare a new table (or database) with the desired schema or location. Although initially empty, you structure it to accommodate the migrated data.
  2. Backfill Initial Data: Copy existing records from the original data store into the shadow table, processing them in chunks to avoid overloading the system.
  3. Sync Ongoing Changes: As the system runs, apply every new write or update from the original data to the shadow. Use database triggers, change data capture (CDC) events, or application-level logic to propagate each INSERT, UPDATE, or DELETE from the source to the shadow to remain in sync.
  4. Verification: Optionally, run checks, such as comparing row counts or sample records, to confirm that the shadow’s data matches the source, giving you confidence that no data was missed.
  5. Cutover: Point the application to the shadow table (or perform a table rename/swapping in the database) once you verify it is up to date. The switch occurs with negligible downtime because you have kept the shadow current.
  6. Cleanup: Retire the old data store after cutover or keep it in read-only mode as a backup until you no longer need it. By using this approach, you can complete migrations with zero downtime. The production system continues running during the backfill and sync phases because reads and writes still hit the original data store while you build the shadow. When you are ready, you can quickly switch to the new store, often through a simple metadata update like a table rename or configuration change.

Figure 1: Data migration using the shadow table strategy

This strategy is sometimes also called the ghost table method (notably by GitHub’s schema migration tool gh-ost) because the new table is like a "ghost" of the original (gh-ost: GitHub's online schema migration tool for MySQL - The GitHub Blog).

Use Cases Where Shadow Tables Shine

Shadow tables offer a robust and flexible mechanism for managing complex migrations, service extractions, and schema refactorings while keeping production systems running uninterrupted. There are three common scenarios where shadow tables can be especially beneficial: database migrations with zero downtime, service extractions in a microservices transition, and incremental schema changes with data model refactoring.

Database Migrations with Zero Downtime

Modern applications often rely on large, heavily used production databases that cannot afford extended downtime for schema modifications or engine migrations. Direct alterations — like adding a new column, changing data types, or indexing — can cause long locking periods and stall critical operations. Shadow tables provide an alternative approach that minimizes the risk of disruption.

Begin by creating a new table that mirrors the structure of the production table while incorporating the desired schema changes. Although this shadow table starts empty or partially populated, you fill it using a controlled backfill procedure. A robust backfill procedure copies historical data from the production table into the shadow table in controlled batches, allowing the system to run concurrently.

After the backfill, set up a continuous synchronization mechanism by leveraging database triggers or CDC frameworks that propagate every new insertion, update, or deletion from the production table to the shadow table. This dual-write mechanism ensures that the shadow table remains an up-to-date replica of the production system.

Simultaneously, automated verification processes continuously compare key metrics between the two tables. Checksums, row counts, and deep object comparisons confirm data integrity and ensure that the shadow table accurately mirrors the production data. Only once these validations confirm that the shadow is consistent with the source can the final cutover be executed, often through a fast, atomic table rename or pointer switch. This approach enables the migration to be completed with minimal downtime, reducing risk and preserving user experience.

Service Extractions in a Microservices Transition

Transitioning from a monolithic architecture to a microservices-based system requires more than just rewriting code; you often must carefully migrate data associated with specific services. Extracting a service from a monolith risks inaccuracy if you do not transfer its dependent data accurately and consistently. Here, shadow tables play a crucial role in decoupling and migrating a subset of data without disrupting the existing system.

In a typical service extraction, the legacy system continues to handle all live operations while developers build a new microservice to handle a specific functionality. During extraction, engineers mirror the data relevant to the new service into a dedicated shadow database. Whether implemented through triggers or event-based replication, the dual-write mechanism ensures that the system simultaneously records every change made in the legacy system in the shadow database.

Once the new microservice processes data from the shadow database, engineers perform parallel validation to ensure that its outputs match expectations. A comparison framework automatically checks that the outputs of the new service match the expected results derived from the legacy system. This side-by-side validation allows engineers to identify discrepancies in real time and make adjustments as necessary.

Teams carefully manage the gradual transition of traffic from the legacy system to the new microservice. By initially routing only a small portion of user requests to the new service, teams can monitor performance, validate data consistency, and ensure that the new system behaves as expected.

Once the shadow database and the new microservice have proven to maintain the same level of data integrity and functionality as the legacy system, engineers execute a controlled, incremental cutover. Over time, they shift all operations to the new service and gradually reduce the legacy system’s role until they fully decommission it for that functionality. This phased approach mitigates risk and provides a built-in rollback mechanism if they detect any issues during the transition.

Incremental Schema Changes and Data Model Refactoring

Even for smaller-scale changes, such as refactoring a table or updating a data model, shadow tables offer a powerful way to mitigate risk. In many systems, evolving the data model is an ongoing challenge, whether splitting a single table into multiple logical parts, merging fields, or adding non-null constraints to previously optional columns.

Instead of applying changes directly to the live table, engineers create a shadow version to reflect the new design. The system simultaneously writes data to both the original and shadow tables, ensuring that it captures any update in real time across both structures. This dual-writing approach allows continuous validation of the new schema against the existing one, enabling engineers to compare outcomes and ensure that the refactored data model handles all business logic correctly. 

Automated comparison tools play an essential role during this phase. By continuously monitoring and comparing data between the old and new schemas, the tools can detect discrepancies early — whether they arise from differences in data type conversions, rounding issues, or unforeseen edge cases. Once engineers have thoroughly validated the shadow table and adjusted for anomalies, they can seamlessly switch the application to the new schema. They can then gradually phase out the original table, with the shadow table taking over as the primary data store.

This incremental approach to schema changes minimizes the need for extended maintenance windows and reduces the risk of data loss or service interruptions. It provides a controlled path to evolve the data model while maintaining full operational continuity.

Industry Examples and Best Practices

Successful migrations using shadow tables have been reported by many organizations, forming a set of best practices:

  • Online Schema Change Tools: Companies like GitHub and Facebook built tools (gh-ost and OSC) to perform online schema changes using shadow/ghost tables. These tools have become open-source solutions that others use. MySQL migrations now use the standard procedure of creating a shadow table, syncing changes, and then renaming (Zero downtime MySQL schema migrations for 400M row table). Similarly, used the open-source LHM gem in their Rails applications to safely add columns, as it "uses the shadow-table mechanism to ensure minimal downtime" Shopify (Safely Adding NOT NULL Columns to Your Database Tables - Shopify). The best practice here is to automate the shadow table process with rigorous checks (row counts, replication lag monitoring, etc.) and fallback paths if something goes wrong (for example, aborting the migration leaves the original table untouched, which is safer than a half-completed direct ALTER).
  • Strangler Pattern for Microservices: Combining the strangler fig pattern with shadow reads/writes has proven to be a successful approach for migrating from a monolith. Amazon, Netflix, and others have used the idea of routing a portion of traffic to a new system in shadow mode to build confidence. Over time, they shifted reads and finally writes to the new service, effectively strangling out the old component. Best practice here:  migrate in phases (e.g., shadow/dual-run, verify, then cutover) and use monitoring/metrics to ensure the accuracy of the new service’s data. The shadow phase can catch any discrepancies early, avoiding faulty migrations.
  • Data Pipeline and CDC Usage: When using event streams for migration, you must ensure ordering and idempotency. Teams often choose Kafka or similar durable logs to replay events to the shadow database. The order of events must match the source’s commit order to maintain consistency. Industry best practice recommends schema versioning and backward-compatible change events when using this method, so that the new system can process events even if the schema evolves during the migration. Decoupling the pipeline (so that the old and new systems communicate via the event log rather than direct dual writes) also reduces risk to the production load. However, teams should monitor the lag between source and shadow and have a way to reconcile differences if the pipeline falls behind.
  • Fallback and Rollback Plans: A migration is not truly safe without a rollback plan. In many cases, shadow table strategies lend themselves to easy rollback. If you find a problem during verification, simply discard the shadow table before switching over; this will not impact users. Even after a cutover, if the new system/table misbehaves, switch back to the old one (provided you kept it intact for a while). Uber’s migration post-mortem stresses having the ability to reverse traffic back to the old system if needed (Uber’s Billion Trips Migration Setup with Zero Downtime). As a best practice, keep the old system running in read-only mode for a short period after cutover, just in case you need to fall back. This safety net, combined with thorough monitoring, makes the migration resilient.

Comparing Shadow Tables to Alternative Migration Approaches

While shadow table (or shadow database) migrations are powerful, you should choose the right strategy for your situation.

Shadow Tables vs. Dual-Write Approach

Shadow table strategy often uses triggers or external pipelines to sync data, whereas a pure dual-write approach relies on the application to perform multiple writes. Dual-writing can achieve a similar goal of keeping two systems in sync, but the complexity of distributed transactions comes with it. 

Without careful design, dual writes can lead to race conditions or partial failures – for example, the app writes to the new database but crashes before writing to the old one, leaving data out of sync. To mitigate this, developers use patterns like the Outbox Pattern, where the application writes changes to the primary DB and also to a special outbox table in the same transaction; the application then asynchronously publishes these changes to the second system. 

In contrast, a trigger-based shadow table inherently ties the two writes into the source database’s transaction (the trigger runs inside the commit), and a CDC-based approach will capture the exact committed changes from the log. Such an approach often makes shadow table strategies more reliable for consistency than ad-hoc dual-write logic.

Figure 2: Data migration using dual-write approach

However,  when you control both systems, dual writes may be simpler to implement at the application level, and they avoid the need for database-level fiddling or extra tooling. In summary, dual writes give you more control in application code, but you must exercise extreme care to avoid inconsistency. In contrast, shadow table methods leverage the database or pipeline to guarantee consistency.

Shadow Tables vs. Blue-Green Deployments

Shadow table strategy complements blue-green setups: one can see the shadow table as part of the green environment being prepared. The key difference is that blue-green by itself doesn’t specify how to keep the data in sync – it assumes you have a way to copy and refresh data in the green environment. A full outage could do this (not ideal), or a shadow/copy process could. So, in many cases, shadow table migrations are an enabling technique to achieve a blue-green style cutover for databases.

Figure 3: Blue-green deployments working with shadow tables

The ability to test the entire new stack in parallel is the advantage of a blue-green deployment. For example, you might run a new version of your service against the shadow database (green) while the old version runs against the old database (blue). You can then switch over when ready, and even switch back if something fails, since the blue environment is still intact. The downside is cost and complexity: temporarily doubling your infrastructure. 

Maintaining two full environments (including databases) and keeping them in sync is not trivial. Shadow tables ease this by focusing on the data layer sync. If your migration is purely at the database layer (e.g., moving to a new database server or engine), a shadow table approach is a blue-green deployment of the database. If your migration also involves application changes, you might do a blue-green deployment of the app in tandem with the shadow table migration of the data.

Both strategies share the goal of a zero-downtime switch, and they pair well, but blue-green is a broader concept encompassing more than data. In contrast, the shadow table strategy is laser-focused on data consistency during the transition.

Shadow Tables vs. Event Replay (Rebuilding from Event Logs)

Event replay leverages an event log or sequence of change events to build up the state in a new system. It’s related to the CDC but slightly different in intent. In a replay scenario, you might start a brand new service by consuming a backlog of historical events (for example, reprocessing a Kafka topic of all transactions for the past year) to reconstruct its database state. Alternatively, if your system is event-sourced (storing an append-only log of changes), you can initialize a new read model or database by replaying all events from the start. This approach ensures that the new database’s state is equivalent to that of the old system, which is derived from the same sequence of inputs.

Figure 4: Data migration using event replay

Unlike shadow tables, event replay can be more time-consuming and is usually done offline or in a staging environment first because processing a considerable history of events can take a while. Shadow table migrations tend to operate on live data in real time, whereas you might use replay to bootstrap and then switch to a live sync method (like CDC) for the tail end. Another difference is that event replay might capture business-level events rather than low-level row changes. 

For example, instead of copying rows from a SQL table, you might replay a stream of "OrderPlaced" and "OrderShipped" events to rebuild the state. This approach can be useful if you’re also transforming the data model in the new system (since the new system can interpret events differently). However, if you miss any events or the event log isn’t a perfect record, you risk an incomplete migration.

In practice, engineers often use event replay in combination with shadow strategies: one might do an initial event replay to catch up a new system, then use incremental CDC or dual-writes to capture any new events that occur during the replay (so the shadow doesn’t fall behind). The combination yields the same outcome: a fully synced shadow ready to take over. The choice between using database-level shadow copy versus event-level replay often comes down to what data you have available. 

Replay might be straightforward if you have a clean event log (like an append-only journal). Otherwise, tapping into the database (via triggers or log capture) might be more manageable. Both approaches aim for eventual consistency, but shadow table syncing (especially trigger-based) will typically have the new store up-to-date within seconds of the original, whereas an event replay might apply changes in batches and catch up after some delay.

Conclusion

The shadow table strategy has proven effective in performing complex data migrations safely and incrementally. Teams keep a live replica of data changes; this enables them to migrate databases, extract services, or refactor schemas without halting the application. Companies apply this pattern to add columns without downtime, migrate enormous tables, or gradually siphon traffic to new microservices, all while preserving data integrity.

Of course, no single approach fits all situations. Shadow tables shine when you need up-to-the-second synchronization and confidence through parallel run comparisons. Alternatives like dual-writes or event replay might be more appropriate in systems built around event messaging or in simpler scenarios where a full shadow copy is overkill. Many real-world migrations end up using a blend of these techniques. For example, one might do an initial bulk load (replay), then switch to a live shadow sync, or use dual-writes in the app plus a trigger-based audit to double-check consistency.

It’s essential that software engineering teams plan migrations as first-class projects and leverage industry best practices: they should run systems in shadow mode to validate behavior, keep toggles or backstops for quick rollback, and monitor everything. When executed with discipline, the shadow table strategy provides a moderate complexity path to achieve significant changes with little downtime. It enables the evolutionary changes that modern software demands, all while keeping users blissfully unaware that anything changed under the hood.

Data Modeling: Definition, Types, and Challenges

Mike's Notes

More on data contracts.

Resources

References


Repository

  • Home > 

Last Updated

01/04/2025

Data Modeling: Definition, Types, and Challenges

By: Mark Freeman
Gable.ai Blog: 7/12/2024

Class is in session as we break down the fundamentals of data modeling, its different forms, and why it's often a source of contention in the data space.

Serving as a (very real, fully accredited, we swear) 101-level collegiate course, this blog article aims to lay a solid, real-world-based foundation regarding the concept and practice of data modeling. 

As such, the article will include a summary of data modeling’s historical prevalence in data engineering, its more recent dissolution, a definition of the concept, and different methods of use. 

We’ll conclude by exploring why any attempt to discuss the benefits of one type over another consistently equates to booting a hornet’s nest.

This foundation will serve as a gateway for newer data engineers, function as a juicy target of ridicule for the more seasoned, and will act to foster an appreciation for the role data contracts will play in data modeling’s future.

Course schedule:

  • Data modeling: An overview
  • Data modeling defined
  • Common types of data models
  • Causes of controversy in the data modeling space
  • Restoring the model of balance
  • Suggested next steps

1. Data modeling: An overview

At one point in the not-too-distant past, data modeling was the cornerstone of any data management strategy. Due to the technical and business practices that were predominant at the end of the 21st century, data modeling at its zenith placed a strong emphasis on structured, well-defined models.

However, in the late 2000s, the emergence of major cloud service providers like Google Cloud Platform, Microsoft Azure, and Amazon Web Services (AWS) enabled cloud computing to gain traction within business organizations. 

By the end of that same decade, the benefits of scaleable, on-demand computing resources led to a proper surge within business organizations, which then led to the proliferation of what is now commonly referred to as the modern data stack—a group of cloud-based tools and technologies used for the collection, storage, processing, and analysis of data. 

Compared to the at-the-push-of-a-button benefits available on demand, data modeling was then seen by a growing number of practitioners as rigid and inflexible. Data modeling takes time. It can get complicated. The costs and overheads associated with the process reflected this. Perhaps most damaging at the time, it became easy to frame data modeling as a bottleneck—dead weight hampering the speed and flexibility of modern data management. 

However, this overemphasis on speed and flexibility and the underutilization of data modeling wasn’t sustainable. Though there is no specific “breaking point” to point to, by the mid-2010s, these issues became increasingly attributable to data modeling’s diminution. 

While far from exhaustive, increasingly common factors helped to precipitate this recalibration in the data space:

  • Data governance challenges: The abundance of cloud-based data storage and processing fueled an explosive increase in the data sources and repositories the average organization had access to. This sudden abundance, in turn, intensified the maintenance of data quality, security, and compliance, irreparably complicating the governance process.
  • Data quality issues: The fevered rate at which cloud-based solutions were adopted resulted in the neglect of data modeling and proper data architecture, resulting in inconsistencies, data quality issues, and difficulties in data integration. 
  • Lack of standardization: While cloud environments freed teams to use various tools and platforms, the consistency of data management practices degraded, making it harder to ensure consistency and interoperability across an organization.
  • Scalability and performance issues: Without proper data modeling, it became difficult to optimize systems for performance and scalability. Bottlenecks and reduced system efficiency resulted as data volumes grew.
  • Security and compliance risks: Rapid cloud adoption without adequate attention to data modeling and architecture can expose organizations to security vulnerabilities and compliance risks, especially when dealing with sensitive or regulated data.
  • Difficulties in extracting value from data: Without a well-thought-out data model, organizations struggle to extract meaningful insights from data. Inevitably, these organizations found that simply having data in the cloud did not guarantee it was inherently usable or valuable for decision-making.

2. Data modeling defined

Data modeling is the practice or process of creating a conceptual representation of data objects and the relation between them. Data modeling is comparable to architecture, in that the process blueprints how data is stored, managed, and used within and between systems and databases.

In essence, there are three key components of data modeling:

  1. Entities: Entities represent the real-world objects or concepts an organization wants to understand better. Examples of data modeling entities include products, employees, and customers.
  2. Attributes: These are the characteristics or properties of the entities being modeled. Attributes provide details that are used to describe and distinguish instances of an entity—product names, prices, customer names, phone numbers, etc.
  3. Relationships: The connections between entities in a data model are called relationships. They can be one-to-one, many-to-many, or one-to-many. Each entity is represented in a relational database in the typical data modeling process. While each entity has a unique identity, it can have multiple instances. 

Traditionally, the role of data modeling primarily focused on designing databases for transactional systems and normalizing data to reduce redundancy, improving database performance. The process itself mainly involved working with structured data in relational databases.

Modern data modeling is highly varied by comparison. And while its practice and process have evolved beyond some of its inherent qualities viewed negatively in the past, others are now increasingly accepted as trade-offs to be balanced against.

Data modeling today caters to a wide range of data storage and processing systems, ranging from traditional relational database management systems (RDBMS) to data lakes and NoSQL databases. Data models now facilitate data integration. They can support advanced analytics, data science initiatives, and predictive modeling. Modern models emphasize agility and scalability to quickly adapt to shifting business requirements.

As such, data modeling now also supports efforts in the data space to democratize data, helping to make data more understandable and accessible to a wide range of users.

3. Common types of data models

There are four main types of data models, conceptual, logical, physical, and dimensional. This is true when the goal is to simplify the categorization of data models.

Depending on the business needs of an organization, however, more than these initial four may be considered and utilized. We note the former simply because of the confusion this can sometimes cause within the data space.

Conceptual data models

The purpose of conceptual data models is to establish a macro, business-focused view of an organization’s data structure. Conceptual models are often leveraged in the planning phase of database design or a database management system.

In these cases, a data architect or modeler may work with business stakeholders and analysts to identify relevant entities, attributes, and relationships using unified modeling language (UML) and entity-relationship diagrams (ERDs).

Logical data modeling

Logical data models work to provide a detailed view of organizational data that is independent of specific technologies and physical considerations. By doing so, logical models are free to focus on capturing business requirements and rules without being biased by technical constraints. As a result, they can provide a clearer understanding of data from a business perspective.

The ability of less technical stakeholders to more easily understand logical data models also makes them a particularly useful tool for communicating with technical teams.

Physical data modeling

Alternately, physical data modeling aims to capture and represent the detailed structure and design of a database, taking into account the specific features and constraints of a chosen database management system (DBMS), as well as business requirements for performance, access methods, and storage.

For this reason, the entities database administrators and developers will focus on include physical aspects of a database—indexes, keys, partitioning, stored procedures and triggers, etc.

Dimensional data modeling

For business intelligence and data warehousing applications, dimensional data modeling is often used. This is because a dimensional model employs an efficient, user-friendly, flexible structure that organizes data into fact tables and dimensions to support fast querying and reporting.

Due to this, dimensional data models can specifically support related applications' complex queries, analysis, and reporting needs.

Object-oriented data modeling

Based on the principles of object-oriented programming, object-oriented data modeling represents data as objects instead of entities. The objects in this type of data modeling encapsulate both data and behavior. This object-oriented approach is key, making object-oriented models highly useful in scenarios where data structures must reflect real-world objects and their relationships.

Common examples of these scenarios include ecommerce and inventory management systems, banking and financial systems, customer relationship management (CMS) systems, and educational software.

Data vault modeling

As the word “vault” implies, data vault modeling is used in data warehousing, but also in business intelligence. Both data warehousing and BI projects benefit from the historical data preservation, scalability, flexibility, and integration capabilities that data vault models provide.

In theory, this makes data modeling a potential tool for any organization that needs to integrate data from multiple sources while maintaining data history and lineage (e.g., healthcare organizations, government agencies, and manufacturing companies).

Normalized data modeling

This type of data modeling focuses on two things—reducing data redundancy and improving data integrity. This can be crucial for transactional systems where data integrity and consistency are of prime importance. Normalized models are easier to maintain and update, while they also prevent data anomalies like inconsistencies and duplication.

De-normalized data modeling

Alternately, de-normalized data models involve the intentional introduction of redundancies into a dataset in order to improve performance. Through de-normalized modeling, related data can be stored in the same table or document. This reduces the need for computationally expensive join operations, which can slow down query performance.

Because of how they function, de-normalized data models also harmonize with the principles of NoSQL databases, which prioritize flexibility, scalability, and performance.

4. Causes of controversy in the data modeling space

Data scholars agree that discussions around data modeling function similarly to a hornet’s nest in nature—both tend to cause massive amounts of pain when stumbled into. While unfortunate for the stumbler, it helps to understand that, in both cases, damage results in the attempt to defend what one holds dear.

For hornets, driven to protect the nest’s existing and developing queens, the aggression results from a combination of their innate programming, alarm pheromones, and the instinct to attack in numbers in order to intimidate and dissuade larger foes.

For data practitioners, however, aggressively defending one’s beliefs about the process and practice of data modeling is usually motivated by one or more of the following factors:

  • Diverse perspectives: Data modeling is a field that intersects with numerous disciplines, including data science, software engineering, database design, data analytics, and business intelligence. While sharing varying degrees of overlap, these disparate professional backgrounds act as frames through which the views of “effective data modeling” become wildly divergent in the data space.
  • Complexity and trade-offs: Additionally, data modeling tends to involve near-endless tradeoffs between competing priorities. These tradeoffs include speed vs. governance, normalization vs. performance, and structure vs. flexibility—each with passionate advocates on both sides of the aisle.
  • Organizational context: The “right” data model in one organization may not be the same in another, even when operating within the same industry. Differing business rules and goals, data requirements, schema, information systems, and data maturity all but guarantee that there will never be one true data modeling technique or process.
  • Subjectivity in design: Data modeling itself can be quite subjective. Like many design disciplines, there are often multiple ways to model a given dataset. And data modelers themselves often have legitimate reasons for championing one approach over another. This subjectivity is part of why many find the challenges of data modeling so fulfilling.
  • Evolving technologies: Despite the order and logic practitioners attempt to bring to the table, the exponentially rapid evolution of data technologies—from traditional relational databases to NoSQL, low and no-code platforms, and big data—necessitates approaches to data modeling to continuously diversify.
  • Fluctuating best practices: Due to the ever-evolving modeling landscape, its related best practices invariably need to change. Techniques once considered sacrosanct can find themselves outdated, furthering debates about what the current best approach may be at any given time.
  • Emotional Investment: Data practitioners tend to be curious, persistent, analytical thinkers who benefit from a high attention to detail. As such, those who practice data modeling (or cross paths with it) tend to invest a great deal of intellectual and emotional capital in their work. Occasionally, this can create an environment where critiques or suggestions for alternate approaches can either be delivered as a personal attack, or taken as such. 

5. Restoring the model of balance

The good news is that navigating the tension between the impact of data modeling and the convenience of the modern data stack is inevitable. Organizations helping to strike the balance should consider employing the following:

  1. Adopt a hybrid approach: Consider using structured data modeling for core business entities that require consistency and stability above all. In areas that call for more agility and flexibility, employ modern data technologies that enable rapid iteration.
  2. Harmonize flexibility with standardization: Building on a hybrid approach, look to standardize core data elements and processes. At the same time, allow for flexibility in areas where rapid change can be expected. Embrace constant balancing and rebalancing of the strengths of structured data modeling and the modern data stack. 
  3. Use iterative data modeling: Instead of insisting on extensive upfront data modeling, try an iterative approach. Start with a basic model, then evolve it as needed. Iteration can produce the best of both worlds, maintaining a structured approach while responding to requirements as they change over time.
  4. Leverage data virtualization: Data visualization provides a helpful layer of abstraction that allows for integrating diverse data sources without extensive modeling. In some organizations, this approach maintains agility while ensuring data is effectively understood and used. 
  5. Focus on metadata management: Bridging the gap between structure modeling and agility usually involves a (sometimes renewed) focus on effective metadata management. Robust metadata curation further enables organizational flexibility while clarity regarding data structures and relationships is maintained. 
  6. Emphasize data governance: When individuals are empowered to enact consistent data governance, clear policies and standards guiding data quality, usage, and security help ensure a data environment remains as agile as possible.
  7. Enable self-service data access: When implemented with appropriate controls, self-service data access supports agility by allowing users to access data as needed while still operating within the framework of the established data model.
  8. Continuous collaboration: Make sure to foster continuous collaboration between your data architects, engineers, and business users. While the passionate data modeling discussions will still take place from time to time, making cross-disciplinary collaboration an important part of the culture helps keep modeling efforts and business needs aligned. 
  9. Implement data contracts: Finally, employ data contracts to provide structured agreements on data formats and interfaces. Their ability to foster communication between data producers and consumers promotes balance just as the other tactics here do—but also allows that balance to scale.

6. Suggested next steps

As is now abundantly clear, treating data as a product is paramount for any organization looking to succeed in an overwhelmingly data-dependent world. Data contracts are the best way to guarantee the quality of data before it even enters an organization. 

For this reason, we’re offering a transformative approach to retaining, developing, and operationalizing data contracts. Make sure to join our product waitlist to be among the first to experience the benefits of Gable.ai.