I did some thinking and planning about Obnam backup storage in general and remote backup storage in particular.

If you think you might ever use Obnam, or care about any backup software, I would appreciate if you read that post and respond here with your feedback.

https://obnam.org/blog/2026/01/store/

#Obnam
#backupImplementation

Obnam 3: Storage design

@liw I care about backup software but don't have a lot of focus available at the moment, so I tried to read this and got lost. I was kind of hoping to see something oriented around use cases and user stories, which I might have some hope of providing feedback on with my current attention span, rather than internal architectural details. Have you already written something at that level? I don't see anything that looks like that in a quick glance through the obnam3 tag on your blog.

@jamey I'm afraid I don't have much in the way of high level documentation.

I have https://doc.obnam.org/obnam/arch.html as a high level software architecture overview. If you're short of focus that might still be too detailed?

I have https://doc.obnam.org/obnam/obnam.html for detailed acceptance criteria and how to verify them, but that's too detailed for you.

Obnam architecture

@liw Those both look like good documents which, indeed, I'm too sleepy and distracted for at the moment.

I'll just say the main thing I would love to have out of a backup tool's storage layer is something that reliably makes backups even during times when the main storage is unavailable, such as when cloud storage is unreachable or an external backup drive is not plugged in, with the ability to sync updates to those stores later. The way I currently do that is to write my backups to the same disk that I'm backing up, then later manually trigger rsync from the backups to a remote server or to a USB disk. My guess is that backup software which is designed for this use could do better; perhaps keeping only an index of already-known chunks locally, for instance, rather than the complete backup.

@jamey That is an interesting use case. I shall record it in an issue ticket.
@jamey https://app.radicle.xyz/nodes/radicle.liw.fi/rad:zbWNQYkQ4QKgdSQcd1tjaemv6d6x/issues/c53a177c73bf2505573129dc6c82f5761843bf7d is the ticket. (To comment there you need to use Radicle, but since it links here, commenting here is enough. I'll amend the issue as needed.)
Radicle Explorer

Explore the Radicle network