• Distributed Systems Engineer

Upcoming Talks

Practical DDD: Bounded Contexts + Events => Microservices

ExploreDDD Sep 17-20 2019, Denver

Domain Driven Design and Messaging go hand in hand, like a warm chocolate brownie paired with vanilla ice-cream! DDD is a software discipline that allows you to move faster and write high-quality code. The whole point is to align the software you write to be flexible with the business changes. When you start to use the technology of messaging to communicate between clean and well-defined bounded contexts you get to remove temporal coupling. And voila, you now have microservices that are built for autonomy from the ground up. Sounds perfect? In this talk, discover this intersection of DDD as a software discipline with messaging as a technology counterpart. Build reliable systems that can scale with the business changes.

Evolving with the changing requirements - Using DDD & Messaging

KanDDDinsky Oct 17-18 2019, Berlin

Modeling business requirements and policies is a tricky thing. Especially when those requirements just keep on changing. Sure, we've all written code before to model requirements, but how can we achieve the dream of evolving the code and at the same time be aligned with the business? After all, isn't that the promise of Domain Driven Design? Business policies are crucial and for us tech people, so is the right way to model them. We want our code to be extensible and to keep up with the changes in business. Time is also a crucial element in modeling business workflows and is implemented in a multitude of ways like timers, scheduled jobs, etc. In this talk, we'll discuss the saga message pattern to see how you can model complex business workflows, and model time as an immutable durable event so you can implement your business policies in such a manner that it truly evolves around your business. Realize the DDD dream.

Past Talks

Practical DDD: Bounded Contexts + Events => Microservices

KCDC 2019, Kansas City

Domain Driven Design and Messaging go hand in hand, like a warm chocolate brownie paired with vanilla ice-cream! DDD is a software discipline that allows you to move faster and write high-quality code. The whole point is to align the software you write to be flexible with the business changes. When you start to use the technology of messaging to communicate between clean and well-defined bounded contexts you get to remove temporal coupling. And voila, you now have microservices that are built for autonomy from the ground up. Sounds perfect? In this talk, discover this intersection of DDD as a software discipline with messaging as a technology counterpart. Build reliable systems that can scale with the business changes.

Practical DDD: Bounded Contexts + Events => Microservices

QCon NYC 2019, New York

Domain Driven Design and Messaging go hand in hand, like a warm chocolate brownie paired with vanilla ice-cream! DDD is a software discipline that allows you to move faster and write high-quality code. The whole point is to align the software you write to be flexible with the business changes. When you start to use the technology of messaging to communicate between clean and well-defined bounded contexts you get to remove temporal coupling. And voila, you now have microservices that are built for autonomy from the ground up. Sounds perfect? In this talk, discover this intersection of DDD as a software discipline with messaging as a technology counterpart. Build reliable systems that can scale with the business changes.

Evolving with the changing requirements - Using DDD & Messaging

NCrafts.IO 2019, Paris

Autonomy & Asynchrony - The key to designing reliable systems

MicroCPH 2019, Copenhagen

Autonomy & Asynchrony - The key to designing reliable systems

DDD Europe 2018, Amsterdam

Evolving with the changing requirements - Using DDD & Messaging

ExploreDDD 2018, Denver

Autonomy & Asynchrony - The key to designing reliable systems

ExploreDDD 2017, Denver

Sometimes the questions are complicated

NDC 2016, Oslo

Sometimes the questions are complicated - Indu Alagarsamy from NDC Conferences on Vimeo.

Autonomy & Asynchrony - The key to designing reliable systems

YOW 2015, Melbourne, Brisbane, Sydney

Upcoming Workshops

Design Reliable Systems using DDD and Messaging

ExploreDDD 2019, Denver

Using message queues is the first step in building more reliable systems. However, this takes a different approach to reasoning about the design of your system, and the structure of your code. But reliability is as much a domain modeling concern as a technical quality. How can we deal with complex business processes, that can fail at multiple points in time? How do we roll back multiple operations in a long-running business process?

We can use existing principles from Domain-Driven Design to deal with these problems:

  • Thorough Domain Discovery to expose failure cases.
  • Collaborating on a Ubiquitous Language and Domain Models that express these reliability concerns.
  • Expressing those models into clear and readable code that remains extensible even with age.
  • What you'll learn:

  • Learn how to EventStorm to collaborate on business processes.
  • Message based architecture patterns that can help to solve temporal coupling and provide reliability and autonomy.
  • How to integrate reliably with third party web services.
  • How to effectively communicate between bounded contexts using events to establish business processes. Learn how to use messages and events to help drive the business process rather than the more traditional models based on data structures and how they help evolve changing business requirements using Domain-Driven Design disciplines and the saga messaging pattern.
  • Strategies for dealing with existing codebases.
  • You’ll pair and work on code exercises using .NET, C# and NServiceBus. These exercises will help you get a solid understanding of these concepts so you can take this to your company and start applying these practices right away. Prior knowledge of NServiceBus is NOT required.
  • Past Workshops

    Indu Alagarsamy

    I enjoy designing distributed systems using event-driven architecture style and domain-driven design principles. I have over 15 years of software development experience working with various industries like healthcare, finance, biotech, and emergency services.  I am currently a Principal Engineer at the New York Times. I am passionate about diversity and inclusiveness in the tech industry. When not programming, I am an occasional rock climber, who loves to chill in sunny Southern California with my kids and my giant mastiff.

    Contact Indu

    Feel free to get in touch with me regarding speaking, workshops or any other questions you have on designing distributed systems. Reach out to me via email, twitter or LinkedIn.

    ©2019 Indu Alagarsamy. All rights reserved.