Best practices for designing scalable, event-driven architectures using openEHR as the system of record.

Hi all,

I’m currently working on a large-scale healthcare platform where openEHR is being used as the central system of record. We are exploring an event-driven architecture to support downstream consumers such as analytics pipelines, AI/ML services, and real-time clinical decision support.

I’d like to gather insights from others who have implemented or experimented with similar patterns.

Specifically:

  • How are you emitting domain events from openEHR systems? (e.g., after commit, via CDC, or application layer hooks)
  • Are there recommended patterns for maintaining consistency between openEHR and event streams?
  • How do you handle eventual consistency concerns in clinical workflows?
  • Any proven approaches for integrating AQL-based querying with streaming systems?

I’m currently evaluating Kafka-based pipelines and considering whether openEHR should remain purely transactional or also participate in streaming workflows.
Would appreciate any architectural patterns, pitfalls, or real-world experiences.

Thanks in advance.

Your question is too broad for me, but in case you want to know how something similar is done, here is my talk from EhrCon25: https://www.youtube.com/watch?v=1T7JT6l32IA

I’m not aware of any company other than Ocean presenting how they’re doing analytics. I’d love to know if there are resources out there from teams how have actually done this.

Thank you for sharing.

I will contact you after watching the video.