Got the time?
“Have all my overdue invoices been paid?” Seems a simple enough question. But once you factor in the effects of time, even the simplest question can turn into a mess of edge cases and complicated batch jobs that never quite complete on time.
Real business systems tend to be messy, and the effects of time make them even messier. A command like “check if overdue invoices are paid” has to deal with questions like “are all invoices due on the same day?” And “are invoices due in 30 days or in one month?”. In this webinar, we’ll analyze what appears to be a straightforward billing system that needs to deal with invoices and discounts. How hard can it be? Then we’ll add a few more use-cases that make it more complicated and see how that can negatively impact the overall design. Finally, we’ll focus our attention on the impact of time on the design, and see how it sheds light on the correct approach to designing features. And best of all: No batch jobs!
In this webinar you’ll learn about:
- The impact of time on systems design
- How to model domain problems with time in mind
- How NServiceBus sagas and timeouts can help dealing with time