Store 6

One read contract for every copy of your data.

Store coordinates network, persistence, and memory behind typed Kotlin Multiplatform reads. Start with a key and a fetcher, then add persistence and projections as needed.

Use stream to observe read results as data changes, or get to request a value. The Quickstart shows the key, fetcher, and collection lifecycle. The read contract explains data origins, freshness, and what callers receive when a fetch fails. The introduction maps the available modules, integrations, and Store 5 migration guides.

Your first Store

Illustrative shape
val users = store<UserKey, User> {
    fetcher { key -> FakeApi.getUser(key.id) }
}

users.stream(UserKey("1")).collect { result -> render(result) }
val user = users.get(UserKey("2"))
The store {} block is verbatim from the executable Quickstart module. The two read lines are simplified illustrations of the same stream and get calls.