Thanks for the recommendation! Read through all the three articles. Learnt a lot. Even though some of the things written in a way that were 'handwaving' as the author writes himself, and I couldn't understand everything ( I'll keep revisiting ) I'd never thought about declarative model enabling using O(n) code instead of O(n^2) when state in the application increases, and some of the other things he talks about. I've linked these articles series as a first thing in my blog post.