<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/breaking-apis-or-data-models-is-a-cardinal-sin-ipspace-net-blog-uvlhcihjq" -->

---
title: Breaking APIs or Data Models Is a Cardinal Sin «...
description: Breaking API or data model contracts between software releases forces automation engineers to rewrite working code with zero functional gain. Using Nokia SR...
canonical: https://daily.dev/posts/breaking-apis-or-data-models-is-a-cardinal-sin-ipspace-net-blog-uvlhcihjq
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Breaking APIs or Data Models Is a Cardinal Sin « ipSpace.net blog | daily.dev
og:description: Breaking API or data model contracts between software releases forces automation engineers to rewrite working code with zero functional gain. Using Nokia SR...
og:url: https://daily.dev/posts/breaking-apis-or-data-models-is-a-cardinal-sin-ipspace-net-blog-uvlhcihjq
og:image: https://api.daily.dev/og/posts/uVLhCIhJq.png
og:image:alt: Breaking APIs or Data Models Is a Cardinal Sin « ipSpace.net blog
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Breaking APIs or Data Models Is a Cardinal Sin « ipSpace.net blog

**[ipSpace.net Blog](https://daily.dev/sources/ipspace)** · 6 min read · 0 upvotes · 0 comments

## Summary

Breaking API or data model contracts between software releases forces automation engineers to rewrite working code with zero functional gain. Using Nokia SR Linux as a case study, the post documents specific breaking changes across releases 23.3, 24.7, and 25.3 — including BGP MED attribute path changes, prefix-match restructuring, and scalar-to-list type changes — that broke netlab configuration templates. The author argues that gradual deprecation, API versioning, or YANG's 'choice' construct could avoid most of these breaks. A Nokia engineer responds in comments confirming an internal config transformation infrastructure exists at boot time but is not yet exposed to northbound management interfaces, and commits to investigating whether it can be.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://blog.ipspace.net/2025/04/api-data-model-contract>

## Questions this post answers

### Does Nokia SR Linux break backward compatibility in its YANG data model between releases?

Nokia SR Linux introduces breaking YANG data model changes roughly once per year, tied to its first release of each calendar year. Documented examples include BGP MED attribute path restructuring, prefix-match path changes, and import/export-policy parameters changing from strings to lists — all in releases 23.3, 24.7, and 25.3. A config transformation infrastructure handles these at boot time during upgrades but is not exposed to northbound management interfaces.

_Network automation engineers tracking SR Linux upgrade risks share findings like these on daily.dev._

### What YANG techniques can preserve backward compatibility when a parameter changes from a single value to a list?

Two approaches work within YANG's strict typing constraints. First, use the 'choice' construct to define mutually exclusive parameters — e.g., 'import-policy' for a single value and 'import-policy-list' for a list. Second, follow Junos's approach of accepting both a scalar and a list at the schema level. Alternatively, the consuming toolchain can silently coerce scalar values to single-element lists, as netlab does.

_Developers designing versioned APIs and data models find architecture trade-offs like these discussed on daily.dev._

## Similar posts on daily.dev

- [Best Ways to Prevent Breaking Changes in Data Management](https://daily.dev/posts/best-ways-to-prevent-breaking-changes-in-data-management-duru1r00w) · Decube · 0 upvotes · 0 comments
- [Navigating Backward and Forward Compatibility for Seamless CI/CD](https://daily.dev/posts/navigating-backward-and-forward-compatibility-for-seamless-ci-cd-eq7hafmoq) · AT&T Israel · 2 upvotes · 1 comments
- [The Engineering Anatomy of API Vulnerabilities: A Deep Dive into the OWASP API Security Top 10](https://daily.dev/posts/the-engineering-anatomy-of-api-vulnerabilities-a-deep-dive-into-the-owasp-api-security-top-10-0kmcwurz4) · freeCodeCamp · 7 upvotes · 0 comments
- [API Versioning Should Be Your Last Resort](https://daily.dev/posts/api-versioning-should-be-your-last-resort-vywyleewk) · Milan Jovanović · 47 upvotes · 5 comments
- [Blog: The API-First Replatform: Why Most Modernization Projects Fail and How to Beat the Odds](https://daily.dev/posts/blog-the-api-first-replatform-why-most-modernization-projects-fail-and-how-to-beat-the-odds-xnkbvb6ch) · Wawandco · 38 upvotes · 0 comments

---

Tags: [#architecture](https://daily.dev/tags/architecture), [#networking](https://daily.dev/tags/networking)

[View this post on daily.dev](https://daily.dev/posts/breaking-apis-or-data-models-is-a-cardinal-sin-ipspace-net-blog-uvlhcihjq)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Breaking APIs or Data Models Is a Cardinal Sin « ipSpace.net blog","url":"https://daily.dev/posts/breaking-apis-or-data-models-is-a-cardinal-sin-ipspace-net-blog-uvlhcihjq","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/breaking-apis-or-data-models-is-a-cardinal-sin-ipspace-net-blog-uvlhcihjq"},"datePublished":"2026-08-11T08:52:01.958Z","dateModified":"2026-08-24T07:02:09.222Z","description":"Breaking API or data model contracts between software releases forces automation engineers to rewrite working code with zero functional gain. Using Nokia SR...","image":"https://media.daily.dev/image/upload/s--VDukGCjf--/f_auto/v1722860399/public/Placeholder%2002","thumbnailUrl":"https://media.daily.dev/image/upload/s--VDukGCjf--/f_auto/v1722860399/public/Placeholder%2002","isAccessibleForFree":true,"articleSection":"ipSpace.net Blog","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"ipSpace.net Blog","logo":"https://media.daily.dev/image/upload/s--xS7E82MT--/f_auto,q_auto/v1786438303/logos/ipspace?_a=BAMAMicg0","url":"https://daily.dev/sources/ipspace"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/breaking-apis-or-data-models-is-a-cardinal-sin-ipspace-net-blog-uvlhcihjq","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"architecture,networking","timeRequired":"PT6M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"ipSpace.net Blog","item":"https://daily.dev/sources/ipspace"},{"@type":"ListItem","position":3,"name":"Breaking APIs or Data Models Is a Cardinal Sin « ipSpace.net blog"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/breaking-apis-or-data-models-is-a-cardinal-sin-ipspace-net-blog-uvlhcihjq#faq","mainEntity":[{"@type":"Question","name":"Does Nokia SR Linux break backward compatibility in its YANG data model between releases?","acceptedAnswer":{"@type":"Answer","text":"Nokia SR Linux introduces breaking YANG data model changes roughly once per year, tied to its first release of each calendar year. Documented examples include BGP MED attribute path restructuring, prefix-match path changes, and import/export-policy parameters changing from strings to lists — all in releases 23.3, 24.7, and 25.3. A config transformation infrastructure handles these at boot time during upgrades but is not exposed to northbound management interfaces. Network automation engineers tracking SR Linux upgrade risks share findings like these on daily.dev."}},{"@type":"Question","name":"What YANG techniques can preserve backward compatibility when a parameter changes from a single value to a list?","acceptedAnswer":{"@type":"Answer","text":"Two approaches work within YANG's strict typing constraints. First, use the 'choice' construct to define mutually exclusive parameters — e.g., 'import-policy' for a single value and 'import-policy-list' for a list. Second, follow Junos's approach of accepting both a scalar and a list at the schema level. Alternatively, the consuming toolchain can silently coerce scalar values to single-element lists, as netlab does. Developers designing versioned APIs and data models find architecture trade-offs like these discussed on daily.dev."}}]}
```

