# Implementing snapshot-aware data structures

DevFeed: [Implementing snapshot-aware data structures](<https://devfeed.tech/articles/implementing-snapshot-aware-data-structures-30531.md>)

Original publisher: [Read original article](<https://blog.zachklipp.com/implementing-snapshot-aware-data-structures/>)

Author: Zach Klippenstein

Published: 2022-05-13T14:10:00Z

Content type: tutorial

Language: en

Sources: [Zach Klippenstein's Blog](<https://devfeed.tech/sources/zach-klippenstein-s-blog.md>)

Topics: [Compose](<https://devfeed.tech/topics/compose.md>), [Data structures](<https://devfeed.tech/topics/data-structures.md>), [Concurrency](<https://devfeed.tech/topics/concurrency.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>)

Tags: [android](<https://devfeed.tech/tags/android.md>), [compose](<https://devfeed.tech/tags/compose.md>), [compose-state-series](<https://devfeed.tech/tags/compose-state-series.md>), [concurrency](<https://devfeed.tech/tags/concurrency.md>), [data-structures](<https://devfeed.tech/tags/data-structures.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [jetpack-compose](<https://devfeed.tech/tags/jetpack-compose.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>)

## AI overview

A tutorial explaining how Compose's snapshot system can expose different values to different snapshots. It develops snapshot-aware data structures from basic concepts and connects the underlying approach to multi-version concurrency control (MVCC).

## Source excerpt

Up to this point in this blog series, I've discussed how to use Compose's snapshot state system, some advantages of how it's designed, and the