# content addressed store

A storage concept in which data is identified by an address derived from its content, commonly a cryptographic hash.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## What Is a Container Registry and How to Use One

DevFeed: [What Is a Container Registry and How to Use One](<https://devfeed.tech/articles/what-is-a-container-registry-and-how-to-use-one-17491.md>)

Original publisher: [Read original article](<https://kodekloud.com/blog/what-is-a-container-registry-and-how-to-use-one/>)

Author: Pramodh Kumar M

Published: 2026-08-10T17:48:35Z

Content type: tutorial

Language: en

Sources: [Kubernetes - KodeKloud Blog | DevOps, Cloud, Kubernetes, AI Tutorials & More](<https://devfeed.tech/sources/kubernetes-kodekloud-blog-devops-cloud-kubernetes-ai-tutorials-more.md>)

Topics: [container images](<https://devfeed.tech/topics/container-images.md>), [content addressed store](<https://devfeed.tech/topics/content-addressed-store.md>), [Docker Hub](<https://devfeed.tech/topics/docker-hub.md>), [Dockerfile](<https://devfeed.tech/topics/dockerfile.md>), [supply-chain-security](<https://devfeed.tech/topics/supply-chain-security.md>)

Tags: [base-images](<https://devfeed.tech/tags/base-images.md>), [cache](<https://devfeed.tech/tags/cache.md>), [ci-cd](<https://devfeed.tech/tags/ci-cd.md>), [cloud](<https://devfeed.tech/tags/cloud.md>), [container-images](<https://devfeed.tech/tags/container-images.md>), [container-registry](<https://devfeed.tech/tags/container-registry.md>), [containers](<https://devfeed.tech/tags/containers.md>), [content-addressed-store](<https://devfeed.tech/tags/content-addressed-store.md>), [cryptographic](<https://devfeed.tech/tags/cryptographic.md>), [devops](<https://devfeed.tech/tags/devops.md>), [docker](<https://devfeed.tech/tags/docker.md>), [docker-hub](<https://devfeed.tech/tags/docker-hub.md>), [docker-login](<https://devfeed.tech/tags/docker-login.md>), [docker-pull-rate-limits](<https://devfeed.tech/tags/docker-pull-rate-limits.md>), [docker-registry](<https://devfeed.tech/tags/docker-registry.md>), [harbor](<https://devfeed.tech/tags/harbor.md>), [image-manifest](<https://devfeed.tech/tags/image-manifest.md>), [image-retention-policy](<https://devfeed.tech/tags/image-retention-policy.md>), [image-scanning](<https://devfeed.tech/tags/image-scanning.md>), [image-tags-vs-digests](<https://devfeed.tech/tags/image-tags-vs-digests.md>), [kubernetes](<https://devfeed.tech/tags/kubernetes.md>), [private-registry](<https://devfeed.tech/tags/private-registry.md>), [pull-through-cache](<https://devfeed.tech/tags/pull-through-cache.md>), [reproducible-builds](<https://devfeed.tech/tags/reproducible-builds.md>), [security](<https://devfeed.tech/tags/security.md>), [supply-chain-security](<https://devfeed.tech/tags/supply-chain-security.md>)

### AI overview

This guide explains how container registries store and distribute container images, emphasizing the distinction between mutable tags and immutable content digests. It also covers pushing, pulling, authentication, Docker Hub rate limits, caching, scanning, and retention.

### Source excerpt

A tag is a bookmark somebody else can move. A digest is the image itself. Once that distinction lands, reproducible builds, supply chain security, and every it worked yesterday mystery make sense.

## Nix 2.35.0 released

DevFeed: [Nix 2.35.0 released](<https://devfeed.tech/articles/nix-2-35-0-released-31355.md>)

Original publisher: [Read original article](<https://discourse.nixos.org/t/nix-2-35-0-released/78914>)

Author: lisanna

Published: 2026-07-13T20:36:40Z

Content type: release

Language: en

Sources: [Announcements - NixOS Discourse](<https://devfeed.tech/sources/announcements-nixos-discourse.md>)

Topics: [Nix](<https://devfeed.tech/topics/nix.md>), [releases](<https://devfeed.tech/topics/releases.md>), [content addressed store](<https://devfeed.tech/topics/content-addressed-store.md>), [Security](<https://devfeed.tech/topics/security.md>), [hashing](<https://devfeed.tech/topics/hashing.md>), [integrity](<https://devfeed.tech/topics/integrity.md>)

Tags: [bugfixes](<https://devfeed.tech/tags/bugfixes.md>), [content-addressed-store](<https://devfeed.tech/tags/content-addressed-store.md>), [hashing](<https://devfeed.tech/tags/hashing.md>), [improvements](<https://devfeed.tech/tags/improvements.md>), [integrity](<https://devfeed.tech/tags/integrity.md>), [new-features](<https://devfeed.tech/tags/new-features.md>), [nix-releases](<https://devfeed.tech/tags/nix-releases.md>), [releases](<https://devfeed.tech/tags/releases.md>), [security](<https://devfeed.tech/tags/security.md>)

### AI overview

Nix 2.35.0 is released with new features, bug fixes, performance improvements, and a security fix for recursive-nix. A highlighted change makes source copying to the Nix store more lazy, reducing unnecessary work for typical flake evaluations while preserving the evaluator's existing behavior.

### Source excerpt

On behalf of the Nix team, I am pleased to finally announce the release of Nix 2.35.0. This release contains a good number of new features, bugfixes, and performance improvements, and is available at releases.nixos.org. This release also fixes a security issue with recursive-nix: https://github.com/NixOS/nix/security/advisories/GHSA-6h4g-g5j9-fm5f Release Notes Highlights Sources are copied to the store more lazily #3121 #15711 #15920 Historically, flakes source trees have been eagerly fetched to and evaluated from the Nix store to ensure deterministic and hermetic evaluation, even if the resulting store object is not used as a derivation input. This made the implementation simpler, yet made flakes unusable in large repositories and performed unnecessary writes to the store on each change to the source tree. Since Nix 2.32, all I/O (excluding path: and hg+:-style inputs) for reading sources during evaluation has been funneled to their original filesystem location (or to the ~/.cache/nix/tarball-cache-v2 bare git repository for tarball-based inputs). However, the source tree was still fetched to the store - primarily for computing the resulting content-addressed store path. In most cases, (such as importing the nixpkgs package set) this is not necessary. Touching (and hashing the NAR serialisation of) the whole source tree is unavoidable, since: In case of flake inputs, narHash integrity must be checked eagerly. The outPath attribute of a flake must be known in advance, and for backwards compatibility must be a content-addressed store path string with constant string context representing the flake source tree. Even within the constraints imposed by backwards compatibility requirements, there are several improvements that are achievable. To reduce the number of copies performed, Nix now hashes the input without copying first, assuming that the .outPath will not end up in a derivation attribute and thus would never have to be actually fetched to the store. This comes a

## IPIP-0499: Updating IPFS Standards for Consistent, Reproducible CIDs

DevFeed: [IPIP-0499: Updating IPFS Standards for Consistent, Reproducible CIDs](<https://devfeed.tech/articles/ipip-0499-updating-ipfs-standards-for-consistent-reproducible-cids-35629.md>)

Original publisher: [Read original article](<https://blog.ipfs.tech/2026-03-reproducible-cids/>)

Author: Michelle Lee

Published: 2026-03-09T00:00:00Z

Content type: release

Language: en

Sources: [IPFS](<https://devfeed.tech/sources/ipfs.md>)

Topics: [IPFS](<https://devfeed.tech/topics/ipfs.md>), [content addressed store](<https://devfeed.tech/topics/content-addressed-store.md>), [configuration](<https://devfeed.tech/topics/configuration.md>)

Tags: [ipfs](<https://devfeed.tech/tags/ipfs.md>), [kubo](<https://devfeed.tech/tags/kubo.md>), [object-object](<https://devfeed.tech/tags/object-object.md>), [standards](<https://devfeed.tech/tags/standards.md>), [verification](<https://devfeed.tech/tags/verification.md>)

### AI overview

IPIP-0499 has been merged into the IPFS specification and defines configuration profiles for DAG construction. Implementations that conform to the same profile produce the same CID for identical input, enabling direct CID comparison for verification and providing a more performant default for large files.

### Source excerpt

IPIP-0499 makes IPFS CIDs deterministic and consistent across all implementations.

## Content-Addressing: A Year In Review

DevFeed: [Content-Addressing: A Year In Review](<https://devfeed.tech/articles/content-addressing-a-year-in-review-35628.md>)

Original publisher: [Read original article](<https://blog.ipfs.tech/2026-01-year-in-review/>)

Author: Robin Berjon

Published: 2026-01-15T00:00:00Z

Content type: opinion

Language: en

Sources: [IPFS](<https://devfeed.tech/sources/ipfs.md>)

Topics: [content addressed store](<https://devfeed.tech/topics/content-addressed-store.md>), [IPFS](<https://devfeed.tech/topics/ipfs.md>), [P2P](<https://devfeed.tech/topics/p2p.md>)

Tags: [2025](<https://devfeed.tech/tags/2025.md>), [content](<https://devfeed.tech/tags/content.md>), [decentralized](<https://devfeed.tech/tags/decentralized.md>), [ipfs](<https://devfeed.tech/tags/ipfs.md>), [object-object](<https://devfeed.tech/tags/object-object.md>), [peer-to-peer](<https://devfeed.tech/tags/peer-to-peer.md>), [review](<https://devfeed.tech/tags/review.md>), [year-in-review](<https://devfeed.tech/tags/year-in-review.md>)

### AI overview

A 2025 year-in-review of content addressing describes its role in data verification and independence from centralized authorities. It highlights IPFS community progress toward a more modular technology suite, including standards, specifications, and purpose-built libraries.

### Source excerpt

Let's take a look at what happened in content addressing in 2025 -- it's a lot!

## How to Migrate IPFS Websites from Fleek to Modular Infrastructure

DevFeed: [How to Migrate IPFS Websites from Fleek to Modular Infrastructure](<https://devfeed.tech/articles/how-to-migrate-ipfs-websites-from-fleek-to-modular-infrastructure-35632.md>)

Original publisher: [Read original article](<https://blog.ipfs.tech/2026-fleek-migration/>)

Author: Marcin Rataj

Published: 2026-01-06T00:00:00Z

Content type: tutorial

Language: en

Sources: [IPFS](<https://devfeed.tech/sources/ipfs.md>)

Topics: [IPFS](<https://devfeed.tech/topics/ipfs.md>), [hosting](<https://devfeed.tech/topics/hosting.md>), [content addressed store](<https://devfeed.tech/topics/content-addressed-store.md>), [GitHub Pages](<https://devfeed.tech/topics/github-pages.md>), [Self-hosted](<https://devfeed.tech/topics/self-hosted.md>), [GitHub Actions](<https://devfeed.tech/topics/github-actions.md>)

Tags: [cloudflare](<https://devfeed.tech/tags/cloudflare.md>), [github-actions](<https://devfeed.tech/tags/github-actions.md>), [github-pages](<https://devfeed.tech/tags/github-pages.md>), [guide](<https://devfeed.tech/tags/guide.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [infrastructure](<https://devfeed.tech/tags/infrastructure.md>), [ipfs](<https://devfeed.tech/tags/ipfs.md>), [migrate](<https://devfeed.tech/tags/migrate.md>), [object-object](<https://devfeed.tech/tags/object-object.md>), [self-hosted](<https://devfeed.tech/tags/self-hosted.md>)

### AI overview

This practical guide explains how the IPFS Project migrated more than 15 websites from Fleek after its hosting service was discontinued. It describes a modular setup combining GitHub Pages for HTTPS hosting, Kubo for CID and CAR creation, IPFS Cluster for pinning, and DNSLink for URL mapping, providing both HTTP and IPFS access.

### Source excerpt

A how-to guide for future-proofing your content-addressed website hosting.

## Migrating the Hub from Git LFS to Xet

DevFeed: [Migrating the Hub from Git LFS to Xet](<https://devfeed.tech/articles/migrating-the-hub-from-git-lfs-to-xet-7351.md>)

Original publisher: [Read original article](<https://huggingface.co/blog/migrating-the-hub-to-xet>)

Author: Jared Sulzdorf; Joseph Godlewski; Sam Horradarn

Published: 2025-07-15T00:00:00Z

Content type: article

Language: en

Sources: [Hugging Face - Blog](<https://devfeed.tech/sources/hugging-face-blog.md>)

Topics: [xet](<https://devfeed.tech/topics/xet.md>), [migration](<https://devfeed.tech/topics/migration.md>), [content addressed store](<https://devfeed.tech/topics/content-addressed-store.md>), [content defined chunking](<https://devfeed.tech/topics/content-defined-chunking.md>), [Amazon S3](<https://devfeed.tech/topics/amazon-s3.md>), [Git](<https://devfeed.tech/topics/git.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>)

Tags: [cas](<https://devfeed.tech/tags/cas.md>), [content-addressed-store](<https://devfeed.tech/tags/content-addressed-store.md>), [content-defined-chunking](<https://devfeed.tech/tags/content-defined-chunking.md>), [git](<https://devfeed.tech/tags/git.md>), [infrastructure](<https://devfeed.tech/tags/infrastructure.md>), [integration](<https://devfeed.tech/tags/integration.md>), [migration](<https://devfeed.tech/tags/migration.md>), [s3](<https://devfeed.tech/tags/s3.md>), [storage](<https://devfeed.tech/tags/storage.md>), [xet](<https://devfeed.tech/tags/xet.md>)

### AI overview

The article explains Hugging Face's migration of the Hub from Git LFS to Xet. It describes the Git LFS Bridge, background content migrations, content-defined chunking, the content addressed store, and S3-backed storage that enable gradual, large-scale migration without disrupting users.

### Source excerpt

We're on a journey to advance and democratize artificial intelligence through open source and open science.

## From Chunks to Blocks: Accelerating Uploads and Downloads on the Hub

DevFeed: [From Chunks to Blocks: Accelerating Uploads and Downloads on the Hub](<https://devfeed.tech/articles/from-chunks-to-blocks-accelerating-uploads-and-downloads-on-the-hub-7205.md>)

Original publisher: [Read original article](<https://huggingface.co/blog/from-chunks-to-blocks>)

Author: Jared Sulzdorf; yuchenglow; Zach Nation; saba noorassa

Published: 2025-02-12T00:00:00Z

Content type: article

Language: en

Sources: [Hugging Face - Blog](<https://devfeed.tech/sources/hugging-face-blog.md>)

Topics: [hugging face](<https://devfeed.tech/topics/hugging-face.md>), [xet](<https://devfeed.tech/topics/xet.md>), [content addressed store](<https://devfeed.tech/topics/content-addressed-store.md>), [AI, ML & Data Engineering](<https://devfeed.tech/topics/ai-ml-data-engineering.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>), [Amazon S3](<https://devfeed.tech/topics/amazon-s3.md>)

Tags: [cas](<https://devfeed.tech/tags/cas.md>), [collaboration](<https://devfeed.tech/tags/collaboration.md>), [content-addressed-store](<https://devfeed.tech/tags/content-addressed-store.md>), [content-defined-chunking](<https://devfeed.tech/tags/content-defined-chunking.md>), [dedupe](<https://devfeed.tech/tags/dedupe.md>), [hugging-face](<https://devfeed.tech/tags/hugging-face.md>), [integration](<https://devfeed.tech/tags/integration.md>), [network](<https://devfeed.tech/tags/network.md>), [performance](<https://devfeed.tech/tags/performance.md>), [quantization](<https://devfeed.tech/tags/quantization.md>), [rust](<https://devfeed.tech/tags/rust.md>), [s3](<https://devfeed.tech/tags/s3.md>), [storage](<https://devfeed.tech/tags/storage.md>), [xet](<https://devfeed.tech/tags/xet.md>)

### AI overview

Hugging Face's Xet team explains how content-defined chunking is being adapted for production to accelerate uploads and downloads on the Hub. The article describes the trade-offs of fine-grained deduplication, including network, infrastructure, metadata, and storage costs, and introduces a Rust-based chunk-oriented integration designed to improve experimentation and collaboration on models and datasets.

### Source excerpt

We're on a journey to advance and democratize artificial intelligence through open source and open science.

## Rearchitecting Hugging Face Uploads and Downloads

DevFeed: [Rearchitecting Hugging Face Uploads and Downloads](<https://devfeed.tech/articles/rearchitecting-hugging-face-uploads-and-downloads-7455.md>)

Original publisher: [Read original article](<https://huggingface.co/blog/rearchitecting-uploads-and-downloads>)

Author: Banerjee; Jared Sulzdorf; Ann Huang

Published: 2024-11-26T00:00:00Z

Content type: article

Language: en

Sources: [Hugging Face - Blog](<https://devfeed.tech/sources/hugging-face-blog.md>)

Topics: [content addressed store](<https://devfeed.tech/topics/content-addressed-store.md>), [hugging face](<https://devfeed.tech/topics/hugging-face.md>), [Amazon S3](<https://devfeed.tech/topics/amazon-s3.md>), [Amazon Web Services](<https://devfeed.tech/topics/aws.md>), [huggingface\_hub](<https://devfeed.tech/topics/huggingface-hub.md>), [Compression](<https://devfeed.tech/topics/compression.md>), [dataset](<https://devfeed.tech/topics/dataset.md>), [Latency](<https://devfeed.tech/topics/latency.md>), [Network](<https://devfeed.tech/topics/network.md>)

Tags: [aws](<https://devfeed.tech/tags/aws.md>), [compression](<https://devfeed.tech/tags/compression.md>), [content-addressed-store](<https://devfeed.tech/tags/content-addressed-store.md>), [dedupe](<https://devfeed.tech/tags/dedupe.md>), [hugging-face](<https://devfeed.tech/tags/hugging-face.md>), [huggingface-hub](<https://devfeed.tech/tags/huggingface-hub.md>), [infrastructure](<https://devfeed.tech/tags/infrastructure.md>), [internet](<https://devfeed.tech/tags/internet.md>), [latency](<https://devfeed.tech/tags/latency.md>), [s3](<https://devfeed.tech/tags/s3.md>), [speed](<https://devfeed.tech/tags/speed.md>), [storage](<https://devfeed.tech/tags/storage.md>), [xet](<https://devfeed.tech/tags/xet.md>)

### AI overview

Hugging Face is redesigning the Hub's upload and download architecture to handle increasingly large model and dataset files. The proposed design introduces a content-addressed store, custom chunk-aware transfer protocols, byte-level processing, deduplication, and compression while continuing to use S3 for data storage. The read path emphasizes high throughput and low latency, while the write path validates and uploads only necessary chunks to improve speed and security.

### Source excerpt

We're on a journey to advance and democratize artificial intelligence through open source and open science.

## From Files to Chunks: Improving HF Storage Efficiency

DevFeed: [From Files to Chunks: Improving HF Storage Efficiency](<https://devfeed.tech/articles/from-files-to-chunks-improving-hf-storage-efficiency-7206.md>)

Original publisher: [Read original article](<https://huggingface.co/blog/from-files-to-chunks>)

Author: Jared Sulzdorf; Ann Huang

Published: 2024-11-20T00:00:00Z

Content type: article

Language: en

Sources: [Hugging Face - Blog](<https://devfeed.tech/sources/hugging-face-blog.md>)

Topics: [xet](<https://devfeed.tech/topics/xet.md>), [content defined chunking](<https://devfeed.tech/topics/content-defined-chunking.md>), [content addressed store](<https://devfeed.tech/topics/content-addressed-store.md>), [datasets](<https://devfeed.tech/topics/datasets.md>), [hugging face](<https://devfeed.tech/topics/hugging-face.md>), [Git](<https://devfeed.tech/topics/git.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>)

Tags: [content-addressed-store](<https://devfeed.tech/tags/content-addressed-store.md>), [content-defined-chunking](<https://devfeed.tech/tags/content-defined-chunking.md>), [datasets](<https://devfeed.tech/tags/datasets.md>), [dedupe](<https://devfeed.tech/tags/dedupe.md>), [git](<https://devfeed.tech/tags/git.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [performance](<https://devfeed.tech/tags/performance.md>), [storage](<https://devfeed.tech/tags/storage.md>), [xet](<https://devfeed.tech/tags/xet.md>)

### AI overview

Hugging Face's Xet team describes a storage system that splits files into variable-sized chunks using content-defined chunking and a rolling hash. Chunks are stored in a content-addressed store with deduplication, so updates upload only new chunks. The article reports a consistent 50% improvement in storage and transfer performance compared with Git LFS across three iterative development use cases, including the CORD-19 dataset.

### Source excerpt

We're on a journey to advance and democratize artificial intelligence through open source and open science.

## Introducing Conditional REST Requests

DevFeed: [Introducing Conditional REST Requests](<https://devfeed.tech/articles/introducing-conditional-rest-requests-16212.md>)

Original publisher: [Read original article](<https://firebase.blog/posts/2017/07/introducing-conditional-rest-requests>)

Author: Casey Rogers

Published: 2017-07-31T00:00:00Z

Content type: news

Language: en

Sources: [Firebase Blog](<https://devfeed.tech/sources/firebase-blog.md>)

Topics: [Firebase](<https://devfeed.tech/topics/firebase.md>), [Realtime Database](<https://devfeed.tech/topics/realtime-database.md>), [REST API](<https://devfeed.tech/topics/rest-api.md>), [content addressed store](<https://devfeed.tech/topics/content-addressed-store.md>), [HTTP](<https://devfeed.tech/topics/http.md>), [Transactions](<https://devfeed.tech/topics/transactions.md>)

Tags: [api](<https://devfeed.tech/tags/api.md>), [cas](<https://devfeed.tech/tags/cas.md>), [firebase](<https://devfeed.tech/tags/firebase.md>), [http](<https://devfeed.tech/tags/http.md>), [launch](<https://devfeed.tech/tags/launch.md>), [news](<https://devfeed.tech/tags/news.md>), [realtime-database](<https://devfeed.tech/tags/realtime-database.md>), [rest](<https://devfeed.tech/tags/rest.md>), [updates](<https://devfeed.tech/tags/updates.md>)

### AI overview

Firebase introduces conditional REST requests for the Realtime Database. Using ETags and the If-Match header, clients can safely perform compare-and-swap updates and retry when another user changes the data first.

### Source excerpt

News, tutorials, and updates from the Firebase team.

## Compare-And-Set in Memcache

DevFeed: [Compare-And-Set in Memcache](<https://devfeed.tech/articles/compare-and-set-in-memcache-38892.md>)

Original publisher: [Read original article](<http://neopythonic.blogspot.com/2011/08/compare-and-set-in-memcache.html>)

Author: Guido van Rossum (noreply@blogger.com)

Published: 2011-08-25T16:59:00Z

Content type: tutorial

Language: en

Sources: [Guido van Rossum](<https://devfeed.tech/sources/guido-van-rossum.md>)

Topics: [content addressed store](<https://devfeed.tech/topics/content-addressed-store.md>), [Python](<https://devfeed.tech/topics/python.md>), [bug](<https://devfeed.tech/topics/bug.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [algorithms](<https://devfeed.tech/tags/algorithms.md>), [appengine](<https://devfeed.tech/tags/appengine.md>), [cas](<https://devfeed.tech/tags/cas.md>), [code](<https://devfeed.tech/tags/code.md>), [compare](<https://devfeed.tech/tags/compare.md>), [google](<https://devfeed.tech/tags/google.md>), [memcache](<https://devfeed.tech/tags/memcache.md>), [new-feature](<https://devfeed.tech/tags/new-feature.md>), [python](<https://devfeed.tech/tags/python.md>), [race-condition](<https://devfeed.tech/tags/race-condition.md>)

### AI overview

This tutorial explains Compare-And-Set in memcache, including its atomic update use case and how it prevents lost updates caused by race conditions when concurrent requests modify the same key.

### Source excerpt

With the most recent release (1.5.3, last week) App Engine's Python API for Memcache has added a new feature, Compare-And-Set. This feature (with a different API) was already available in Java; it has also been available in the non-App-Engine pure-Python memcache client. In fact, I designed the App Engine Python API for this feature to be compatible with the latter, since most of the rest of the App Engine Python API also strives to be at least a superset of that package. But what is it? There seems to be little information on how to use Compare-And-Set with memcache. It is also sometimes (incorrectly) referred to as Compare-And-Swap -- incorrect, because the cas() operation does not actually "swap" anything. The first response when we closed the bug requesting this feature was "Some examples of usage are appreciated." So here goes. The basic use case for Compare-And-Set is when multiple requests that are being handled concurrently need to update the same memcache key in an atomic fashion. Let's assume you are managing a counter in memcache. (Actually, you could use the incr() and decr() operations to update 64-bit integer counters atomically, but just for argument's sake assume you cannot use those -- there are other data types for which the memcache service does not have built-in support.) The naive code to update a counter would be something like this: def init_counter(key): . memcache.set(key, 0) def bump_counter(key): . counter = memcache.get(key) . assert counter is not None, 'Uninitialized counter' . memcache.set(key, counter+1) (Aside: I don't want to have to think about how to get blogger to properly format Python code. I really don't. So just bear with the dots I use for indentation. Okay? Comments pointing me to solutions will be DELETED.) (Aside 2: The assert is kind of naive; in practice you'll have to somehow deal with counter initialization. You also should implement a backup for your counter using the App Engine datastore, so that it can survive evic

## Software Development as a Complex Adaptive System

DevFeed: [Software Development as a Complex Adaptive System](<https://devfeed.tech/articles/software-development-is-complex-adaptive-system-no-doubt-30409.md>)

Original publisher: [Read original article](<https://www.mdubakov.com/posts/software-development-cas-2/>)

Published: 2008-11-24T15:41:57Z

Content type: opinion

Language: en

Sources: [Blog by Michael Dubakov](<https://devfeed.tech/sources/blog-by-michael-dubakov.md>)

Topics: [Complex Systems](<https://devfeed.tech/topics/complex-systems.md>), [content addressed store](<https://devfeed.tech/topics/content-addressed-store.md>), [Development](<https://devfeed.tech/topics/development.md>), [Software Engineering](<https://devfeed.tech/topics/software-engineering.md>)

Tags: [complex-systems](<https://devfeed.tech/tags/complex-systems.md>), [complexity](<https://devfeed.tech/tags/complexity.md>), [development-process](<https://devfeed.tech/tags/development-process.md>), [software-development](<https://devfeed.tech/tags/software-development.md>)

### AI overview

The article explains software development through the lens of Complex Adaptive Systems (CAS). It introduces CAS as adaptive, decentralized networks of interacting agents and relates their properties--such as self-organization, feedback, information exchange, cooperation, and adaptation--to software development.

### Source excerpt

Complexity science is very young. Cybernetics, ecology, sociology, meteorology all study complexity. In general, a complex system consists of interacting components. The result of this interaction can't be predicted by observing an individual component. For example, human brain consists of neurons. The brain has 'memory', while each neuron doesn't. Ants' colony behavior can't be predicted from the behavior of an individual ant. And it is impossible to understand software development process looking at how just one developer works. We are especially interested in a particular case of complex systems called Complex Adaptive Systems (CAS). The main difference is that CAS may learn and change (adapt) over time based on previous experience. CAS remember the history, and that is the main difference from chaotic systems. There is no common definition of Complex Adaptive System (CAS). One of the most popular definition was offered by John H. Holland A Complex Adaptive System (CAS) is a dynamic network of many agents (which may represent cells, species, individuals, firms, nations) acting in parallel, constantly acting and reacting to what the other agents are doing. The control of a CAS tends to be highly dispersed and decentralized. If there is to be any coherent behavior in the system, it has to arise from competition and cooperation among the agents themselves. The overall behavior of the system is the result of a huge number of decisions made every moment by many individual agents. CAS has quite many common properties. However, hardly a system should have all of them to be CAS. Moreover, researches define different sets of CAS properties. Let's try to review the most common properties and see how software development process can be described in terms of those properties. CAS Property Software Development interpretation Agent System component People in development team and others involved (product owners, stakeholders). Feedback Each agent in CAS reacts to information fl