This article is great. I’ve been thinking about this design problem all wrong for a long time. This has been incredibly helpful.