Skip to content

Trust

Service status

Live status, incident history and what we commit to. The live page is hosted away from our own infrastructure, so it stays up when we do not.

The live status page

Current status, component by component, and the incident history are at status.boardbutler.com. It is monitored independently of our hosting, which is the only way a status page is worth anything during an outage.

Components monitored: the application, the owner portal, payments, bank feeds, email, print mail, meeting capture, and the public interface.

What we commit to

Our operating target is 99.9 percent monthly availability for the application and the owner portal, excluding maintenance we announce in advance.

We post an incident on the status page when we detect one, and we publish what happened afterwards rather than letting it disappear.

Recovery objectives, and why no figure is on this page yet

A recovery point objective says how much data a disaster could cost you. A recovery time objective says how long service could be gone. Both are commitments, and a commitment nobody has measured is a number rather than a promise.

Our database platform changed while we were building, and the figures written into our internal specification were derived against the previous vendor. Carrying them across would mean publishing a commitment about a system we had not tested. So we publish neither figure today.

They go up here when a restore drill has been run against the platform the data actually sits on, and this page will state the date of that drill and what it measured.

Maintenance

Planned maintenance is announced in advance on the status page and by email to the billing contact. We schedule it outside the hours boards actually use the product wherever we can.

How each component's state is decided

Every state on the live page comes from a check that actually ran. A component nobody could check is never shown as operational.

Each component below is backed by a check that runs against the running system: the database answering and reporting the schema this build expects, the job queue's oldest unclaimed piece of work and how long it has waited, the object store, and each outbound vendor connection. The state you see is the worst answer those checks gave.

When a check cannot run at all, the component is reported as degraded and the reason is published with it, and the service as a whole is reported as degraded too. It is never reported as operational. A page that shows green because nothing checked it is worse than no page, because it is most likely to do that at the moment something is wrong.

  • Application
  • Owner portal
  • Payments
  • Bank feeds
  • Email
  • Print mail
  • Meeting capture
  • API

How the data is protected while it is up

Regional storage, an append-only audit chain anchored outside our systems, and money rules the database itself enforces.