Platform Nuts & Bolts : Extendable Data Models
Strategies for building flexible data models in Platform systems
The core of building Platforms rests in versatile entity management. Entities represent the nouns or the “truths” of our world. What those entities do or how they behave can vary a lot from situation to situation, but the key thing to identify is that very often, the same entity can feature in all of these scenarios. When we look at our systems from a business and real-world perspective, it is clear that we are working with a set of things that behave in a certain way. The business teams are focussing on getting things doing, and if two things behave in a similar way, they often think them to be the same (or at least same enough to be getting along with).There is a kind of street-wisdom in clubbing together things that behave in a similar way — even though they may not technically the same.
Early design and architecture conversations often centre around identifying “nouns” (entities) and “verbs” (actions) in the PRD and trying to determine if we are actually dealing with the same entity or with two things that act in a similar way. This is important because it exposes the full underlying complexity of the problem and identifies actors thats might otherwise slip under the radar. However, there is the other side of this situation too — Developers like to divide things too much. It is ingrained in our training. Combining data and behaviour is one of the core tenets of object-oriented programming. If we…