August Meetup 2017hosted by Tobias Pfeiffer by Babbel (www.babbel.com), 03.08.2017 at 19:30
Let's meetup, listen to cool talks and great people :)
There will be Pizza, as always on a first come first served basis. There will also be some cool drinks.
3 no-obvious algorithms which solve interesting problems
I recently gave a talk at an internal company event which was about 3 non obvious algorithms I found while trying to solve real world problems and why it can be worthwhile to read a few papers from the graybeards sometimes
Its quite beginner friendly as I will give a quick intro as well.
As you build more complex solutions, you may find that certain interactions in your system depend on more than one module. Order, Inventory, Payments, Delivery... To finish one feature often many sub-system are involved. But you want the modules to be isolated and independent. Yet something must coordinate their work and business processes. Welcome the choreographer - the Saga Pattern a.k.a. Process Manager.
What we try to do everyday in an 8 year old Rails application is to split it into multiple independent parts of application called bounded contexts. But many features requires them to communicate with each other. We do it by publishing domain events and having objects called sagas orchestrate the processes which touch multiple parts of the application. We work on a ticketing&e-commerce application that sells thousands of tickets every day. The insights will be based on real-world battle-tested examples.
I think a lot of talks describe a ways to split your application horizontally with more layers such as presenters, decorators, service objects, repositories etc... But I think much bigger problem is how to split your application vertically into more isolated sub-systems. This is what I would like to show and discuss how we use domain events and sagas so that those sub-systems can communicate between each other.
P.S. I was planning on delivering this topic in September.
“What’s the fastest way of doing this?” – you might ask yourself during development. Sure, you can guess what’s fastest or how long something will take, but do you know? How long does it take to sort a list of 1 Million elements? Are tail-recursive functions always the fastest?
Benchmarking is here to answer these questions. However, there are many pitfalls around setting up a good benchmark and interpreting the results. This talk will guide you through, introduce best practices and show you some surprising benchmarking results along the way.