Say you're working with a big e-commerce project. From early days - you knew that normalised DB is the way to go and that's what you do nowadays. One day, the marketing department makes an amazing deal and your website is swarmed by thousands and thousands of customers! That's awesome! Except your DB is sweating so hard that in 2 minutes it releases the last breath and your caches expire. Now what?!

I had this crazy idea, deep in my mind, which no sane person believed in - perhaps we don't really need to query all those relations all the time? Perhaps there is a different way of modelling data for high load? If caching is so hard, are we doing it correctly? I'd like to share this idea with you, with some practical examples from production and theoretical guesses. My goal is to seed new ideas into your minds, feed them with a different approach which you might implement in the future. I'll be talking about data projections, events, queues, data modelling, and de-normalisation. Might mention a buzzword or two like NoSQL, AWS or DDD.

Comments

Comments are closed.

David Higler at 10:26 on 8 Jun 2019

Interesting talk. Simply sad for performance go for static files with json in it. And use suitable tech generating these files. Not a 3 point talk. And it would be beter if he talked bit faster.

Thomas Berends at 10:50 on 8 Jun 2019

For a beginner it was hard to understand in the beginning what were the differences between caching and using read models. Of course, this is the fact that it happens on change vs on request, and the last one of those causes big delays for a lot of users at the moment of a cache invalidation. This is something that would've been better to explain in the first 10 minutes of the talk and would've made the rest of the talk stronger.

Dennis C. at 12:13 on 8 Jun 2019

Very interesting information, the format might benefit with some humorous examples, but I enjoyed it!

Daniel Halasz at 19:44 on 8 Jun 2019

Using static files instead of applying a proper cache strategy is not a good approach...

Roel Bakker at 08:53 on 9 Jun 2019

Good talk, giving an alternate approach to decoupling your app from the database. I feel the comments that are towards the negative side focus on an implementation detail of using static files, instead of the proposed idea.

Great ideas to think about!

Erik de Bos at 09:24 on 9 Jun 2019

Original talk remind us our job is not to find the best solution, but the simplest one that works.
Speaker could speed up a bit the flow of the talk.

Tom de Wit at 11:48 on 9 Jun 2019

Insightful talk into various approaches one might consider. The fact that we’ve been doing it with relational databases for all this time doesn’t necessarily mean it’s always the right tool for the job. This talk introduces some nice alternatives to consider.

During this talk I realized I had misread the abstract and that the talk was of lesser relevance to me than I thought, but overall a refreshing presentation that reminded me that common practices might just be our conventions pushing us to overengineer a solution instead of looking at it from a distance to find a simple one.

The talk was really nice, and the idea of having the projections instead of fetching the data from relational DB was presented in clear way.

Erwin Smeman at 11:00 on 27 Jun 2019

Very interesting point of view on how to "cache" without using a caching mechanism.