Great slide deck by Uwe Friedsrichsen on resilient patterns to use when designing applications
admin
Overheard : Paradoxical Commandments
My sister shared this awesome “thought” by Dr. Kent M. Keith.
People are illogical, unreasonable, and self-centered.
Love them anyway.
If you do good, people will accuse you of selfish ulterior motives.
Do good anyway.
If you are successful, you will win false friends and true enemies.
Succeed anyway.
The good you do today will be forgotten tomorrow.
Do good anyway.
Honesty and frankness make you vulnerable.
Be honest and frank anyway.
The biggest men and women with the biggest ideas can be shot down by the smallest men and women with the smallest minds.
Think big anyway.
People favor underdogs but follow only top dogs.
Fight for a few underdogs anyway.
What you spend years building may be destroyed overnight.
Build anyway.
People really need help but may attack you if you do help them.
Help people anyway.
Give the world the best you have and you’ll get kicked in the teeth.
Give the world the best you have anyway.
Optimizing cache infrastructure
I love when engineering teams share their tricks of trade for other organizations to benefit. While this might seem counter-intuitive, sharing knowledge makes the entire ecosystem better.
Etsy‘ engineering team does a great job of publishing their architecture, methodologies and code at https://codeascraft.com.
This particular article on how they optimize their caching infrastructure (https://codeascraft.com/2017/11/30/how-etsy-caches/) is pretty enlightening. I always thought the best method to load balance objects (app hits, cache requests, queues etc) to hosts was to use mod operations. In this blog post Etsy’ team talk about using consistent hashing instead of modulo hashing.
At a high level, it allows cache nodes to fail and not impact the overall performance of the application drastically in addition to making it easy to scale the number of nodes. This method is useful when you have a large amount of cache nodes.
More reference links
- http://www.tom-e-white.com/2007/11/consistent-hashing.html
- https://www.toptal.com/big-data/consistent-hashing
- https://en.wikipedia.org/wiki/Consistent_hashing
Overheard : Attitude
Saw this on a t-shirt a girl was wearing recently
Let me pretend I care…
OK, I’am done
:). Simple but such a strong message.
Cooking with Soy
Am planning to experiment cooking with Soy (soya) granules, which is considered a good alternate for meat, since I became a “temporary” vegetarian :). Although it is a cheaper and healthier way to get protein than mean, I am not sure why it never gained more popularity.
This receipe site by Aarthi is a source of great inspiration.
https://www.yummytummyaarthi.com/2011/05/chukka-soya-curry.html
Look forward to sharing the results of my experiment 🙂
DID YOU KNOW : Advanced Search in Microsoft Explorer
I was trying to search for some files on my laptop today and wanted to filter the search for filed modified in the last few weeks. Like, show me all files that contain the word “American” and modified in the last 2 weeks. Doing this on a Linux machine would have been a simple filter using find. But this is Microsoft :).
Thanks to some Googling, I ran across something called “Advanced Query Syntax” that is a core part of Microsoft’ ecosystem (OS, Office etc).
So the same search ended up being
American datemodified:this month
There are a lot of cool ways you can filter your queries using the other keywords in AQS.
Liar Paradox
This is a lie
One of the simplest statements that is neither true or false!!
An evening of entertaining reading at https://en.wikipedia.org/wiki/Liar_paradox
Running distributed cron jobs using Kubernetes
Good blog post by the engineering team at Stripe on using Kubernetes to run a distributed cron scheduler
https://stripe.com/blog/operating-kubernetes
How data streams work (AKA queue design)
Good blog post by Timothy Downs on how queues and data streams work with a layman example at https://hackernoon.com/introduction-to-redis-streams-133f1c375cd3
Quoting the example here
We have a very long book which we would like many people to read. Some can read during their lunch hour, some read on Monday nights, others take it home for the weekend. The book is so long that at any point in time, we have hundreds of people reading it.
Readers of our book need to keep track of where they are up to in our book, so they keep track of their location by putting a bookmark in the book. Some readers read very slow, leaving their bookmark close to the beginning. Other readers give up halfway, leaving theirs in the middle and never coming back to it.
To make matters even worse, we are adding pages to this book every day. Nobody can actually finish this book.
Eventually our book fills up with bookmarks, until finally one day it is too heavy to carry and nobody can read it any more.
A very clever person then decided that readers should not be allowed to place bookmarks inside the book, and must instead write down the page they are up to on their diary.
This is the design of Apache Kafka, and it is a very resilient design. Readers are often not responsible citizens and often will not clean up after themselves, and the book may be the log of all the important events that happen in our company.
Overheard : Failure
When you do your job well, no one notices. When you screw up the whole internet notices – Julia Grace
during a great keynote speech at Velocity 2017 on how to build efficient engineering teams.
