HTTP services or an embedded Go library

A key-value database for object storage.

Store durable key-value data directly in object storage. Readers scale independently; compaction runs on separate compute.

How IsleDB runs One writer puts data into one prefix of your bucket. Any number of readers read the same prefix. A maintenance process compacts it from separate compute. Writer one your bucket / prefix data files commit history change feed Reader Reader any number Maintenance compacts, separate compute put get How IsleDB runs Writer your bucket / prefix data filescommit historychange feed Maintenance compacts Reader any number putget

Your bucket is the database.

Everything IsleDB stores lives under one prefix in your bucket. The writer, readers, and maintenance are just processes: stop them, move them, or add more, and the data stays where it is. Run them as HTTP services, or embed IsleDB in your Go program.

  • One writerCommits key-value updates.
  • Your object storeHolds durable shared database state.
  • Many readersScale without moving the data.
  • Maintenance workerRuns compaction, optional change-history retention, and storage cleanup.

Try it in a minute.

Run a writer and a reader with Docker and use them over HTTP, or embed IsleDB in a Go program.

Full guide →
# a writer on :8070, a reader on :8080, and an S3-compatible store
curl -O https://raw.githubusercontent.com/ankur-anand/isledb/main/examples/services/compose.yaml
docker compose up -d

curl -X PUT --data 'hello' localhost:8070/v1/kv/greeting
curl localhost:8080/v1/kv/greeting   # hello

Follow every change, in order.

Turn on the change feed and IsleDB keeps every committed put and delete, in order. Each consumer reads it a page at a time, saves its place, and resumes from there later, on any reader, over HTTP or in Go. Use it to keep a cache, a search index, or another system in sync.

  • Keys onlyFor invalidation: identify the changed key and operation without storing another copy of each PUT value.
  • Full valuesFor replayable CDC: include committed PUT values when consumers need to reconstruct historical mutations.

One Go key-value database across S3, GCS, and Azure Blob Storage.

Deploy on AWS, Google Cloud, Azure, private S3-compatible storage, or local files without changing how your application writes, reads, scans, or consumes changes.

Object storeBucket URLNotes

Key-value database on Amazon S3

s3://bucket?region=…Keep the database under one S3 bucket prefix or use an S3-compatible service.

Key-value database on GCS

gs://bucketUse Google Cloud Storage for durable KV data shared by many readers.

Key-value database on Azure Blob

azblob://containerStore the database in an Azure Blob container with the same API.

MinIO and file-backed storage

s3://…?endpoint=…
file:///path
Develop locally or use an S3-compatible private cloud with one data model.

Choose object storage on purpose.

IsleDB favors large, durable, append-shaped workloads where shared storage and independently scalable compute matter more than single-digit millisecond latency.

Strong fit
  • Large retained key-value state
  • Append-heavy events, logs, and CDC
  • Many readers over one durable dataset
  • Ephemeral or independently scaled compute
  • Second-scale freshness
Choose something else
  • Sub-10ms read-after-write serving
  • High-contention transactional updates
  • Joins, secondary indexes, or SQL queries
  • Multi-key ACID transactions
  • Tiny hot datasets that fit in memory

Common questions about KV databases on object storage.

IsleDB keeps durable database state in your bucket, and serves it over HTTP or inside your Go program.

What is a key-value database on object storage?

It retrieves values by key while using an object or blob store as the durable storage layer.

Can I use IsleDB from any language?

Yes. The isledb writer and reader services take writes and serve reads, scans, and the change feed over HTTP.

Is IsleDB a key-value database for Go or Golang applications?

Yes. Go programs can also embed it, with native writer, reader, change-feed, and maintenance APIs.

Can IsleDB run compaction in another process?

Yes. A maintenance process can perform compaction on separate compute against the shared database.

Does IsleDB work with S3, GCS, and Azure Blob Storage?

Yes. Choose the matching bucket URL and credentials while keeping the same database API.

When should I use a different database?

Choose a transactional serving database for sub-10ms latency, joins, or multi-key transactions.

Start with a bucket.

Run a writer and readers with Docker and use them over HTTP, or embed IsleDB in your Go program. The guide walks through both in a few minutes.