How we used Event Sourcing to build seven of Creately’s key features.

Hiraash Thawfeek
Sep 25, 2018 · 4 min read

Picking the right software architecture/design is just like picking the right tool for a job. You use the wrong tool and then everything may seem a little bit more difficult or little bit more messier. When it comes to software architecture/design though, there is no such thing as the “correct” tool for the job. Most solutions would work and the difference would be relative. It really boils down to how optimal a solution is, for the problem(s) at hand.

When we started rebuilding Creately from scratch, we revised a lot of our design and architectural decisions. One of them was to use Event Sourcing as one of the key patterns in the overall solution. Lets jump right into it.

The Implementation

Using this as the fundamental way of managing the diagram state/data we were able to build powerful features effortlessly. Here are some of the large features that were just possible due to this pattern.

1. Always Saved Diagrams

2. Offline and Cloud Syncing

3. Realtime Collaboration

4. Reactive UI

5. Undo/Redo

6. Granular History

7. Previewing Features

There is lot more to it.

We are excited!

Beyond the Semicolon

A tech-blog by the team behind Creately (

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch

Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore

Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store