Skip to content

Case study 15 · Business systems and integrations

Meeting records and file permissions, modeled as a graph

In a white-label meeting platform for healthcare and finance, access to a file depends on a chain of links. The product was sold to an American bank.

EngagementFull-stack engineer · 2023 · 8 months · via agency · team of 5 · the data model was my decisionPublished

Product sold to an American bank

The story in 5 steps

Stack

  • Neo4j
  • WebRTC
  • AWS Transcribe
  • React
  • DocuSign

01 · Context

The platform runs remote meetings and is built around what each meeting leaves behind: who attended, what was said, which documents were in play, who was allowed to see them and who signed.

In a team of five, I chose the database, modeled the domain, and built file management, transcription, recording and post-processing.
The product was sold to an American bank.

02 · Could not change

In healthcare and finance, the video call is a commodity and customers pay for the record of the meeting, so the record is what the system has to guarantee.

The hard question is whether a person may open a particular file, and the answer depends on a chain: they attended a meeting, the meeting is linked to a document, the document has versions, a version carries a signature, and permission can come either directly or through the meeting.
In a relational schema, every such permission check is a recursive join, which slows down with every new type of relationship and gets harder to maintain with every new rule.

03 · What we did

A graph data model in Neo4j. I modeled people, meetings, files and signatures as nodes, and attendance, attachment and permissions as edges.

Google models access control as a graph too, for the same reason, so this is a recognized pattern.
Files added during the meetingA document can be uploaded in advance or attached while the meeting is running, and the moment it is attached it has to appear for everyone present, with the right permissions for each of them.
Transcripts that feed the next meetingTranscription runs in real time with speakers separated, and the finished transcript goes into the agenda of the next meeting.

04 · Result

Permission checks answered by traversing the graph, however long the chain

Documents that belong to several meetings, with version history and signing
Real-time transcription with speakers separated, feeding the next meeting's agenda
Guest access that satisfies HIPAA

05 · Differently

Five of us built broadly for eight months, and no shared component layer ever emerged.

Related services

The services that draw on this work.

Related writing

Posts that came out of this project.

Case study 15

Working on a similar problem? We reply within one business day.

The first call takes 30 minutes, and you’re under no obligation.

Tell us about your projectcontact@microtech.consulting