High-scalability domain models: SkuVault case study – Rinat Abdullin – KanDDDinsky 2017

video:

Principles of domain-driven design can create a strong competitive advantage for business, empowering its rapid growth. This poses a challenge for the design process in place: in addition to continuous feature development, it needs to react to fresh domain insights and new scalability targets.

Even a bigger challenge is in maintaining the domain model clarity and simplicity of emerging design throughout this evolution.

At SkuVault we took inspiration from the works of Eric Evans, Greg Young and Alberto Brandolini, CQRS/ES community, lisps and system simulation. We focused on capturing and refining system contracts and behaviours, while iterating on the implementation details.

The current solution is highly-available, it supports tenant partitions with billions of events and can process them at 10 kHz on a small cloud node. There are thousands of full-stack event-driven specifications that run at 100-600 Hz, verifying domain model in seconds on a dev laptop. To meet new performance and scalability targets, the solution went through 3 complete rewrites while maintaining domain model integrity.

This talk covers the experience of design process at SkuVault, focusing on key approaches to support domain model evolution and maintain model integrity.

Tags

Follow us

Read our latest news from Virtual DDD on any of these social networks!

Recent videos

Impact Mapping – The Secret Sauce

Details "Impact mapping is a lightweight, collaborative planning technique for teams that want to make a big impact with software products. It is based on user interaction design, outcome-driven planning and mind mapping. Impact maps help delivery teams and...

Pragmatic Architecture: How to Know When It’s Enough

Details Overengineering wastes time and effort, while underengineering creates future pain. How do you strike the right balance? This talk explores how you can use the balanced coupling model to achieve the just-right engineering. You’ll learn to predict volatility of...