Skip to content
Darmawan Zulkifli

Matrix as the messaging substrate for clinical communications

Clinical messaging needs records that outlast the shift, data that stays on the customer's own servers, and a way for organisations to talk to each other. Matrix covers all three.

Decision

Matrix.org, hosted by us — proven with a working proof of concept before any migration

Domain
Realtime systems
Period
2024
System
Aptus Aware
Read the case study →

Context

Aptus Aware moves nurse call, presence and escalation off a fixed wall panel and onto the handsets care staff already carry. That makes messaging the spine of the product rather than a feature attached to it.

Problem

Off-the-shelf chat is built for things clinical communication does not need, and skips the things it cannot do without.

Constraints

  • We need to know who said what, to whom and when, long after the shift ends.
  • Presence has to be worked out by the system, because a status people set by hand is wrong within an hour or two of the shift starting.
  • Clinical data cannot sit on a third party’s servers.
  • Separate organisations need to talk to each other without one of them owning the hub.

Decision

Build the messaging backend on Matrix and host it ourselves. Prove it with a working proof of concept first, then review and move backend code onto it — rather than committing the product to a protocol based on a design document.

Three things decided it. Matrix has a real event graph, so history is recorded rather than pieced back together. It federates, so organisations can talk without one of them owning the hub. And we can host it, so the data stays where the customer needs it.

Alternatives

Trade-offs

Hosting it ourselves is work a vendor would have done for us — capacity, upgrades, and being the person called when it goes down. We took that on knowingly, because it is the only way to meet the data requirement.

Matrix is also a lot bigger than a simple messages table. It brings concepts the product does not need, and the team has to spend time learning them.

Outcome

The proof of concept was proven and backend code migrated onto it. Presence and hunt-group routing are built on top.