visit
Credit: User Cea from Flickr
Think of each dust particulate in the aftermath of the star’s supernova as an individual unit of logic. It could be business logic, a database query or connection, a model, etc. Pretty much everything. These are distributed evenly across the system randomly with no dust particle having any bias to another (yet). For dust particles to start adhering to each other we should think of our user flows and which dust particulates they require. Each flow that your user traverses in the sea of particles leaves behind a trail connecting them and drawing them closer together. Each flow builds on each other eventually leaving a heat map of the hot spots that see the most use. I propose these hot spots are your new contextual boundaries! Think of these new boundaries as orbital bodies of each other. You could have a central star with planets and those planets could have moons. Maybe a rogue component acts as an adapter between two major systems; I recommend thinking of it as a comet that traverses multiple solar systems. I haven’t seen this concept or the term used before and therefore I’d like to coin it if available, Solar Architecture/Design.
Credit: User Unserkanal from Flickr
This perspective gives you a lot of flexibility with implementation after identifying these boundaries. There are no restrictions with choosing to use modular monoliths or choosing microservices in the cloud, though the real strength of this lies in the system’s structural diagram. I shun the idea of describing complex systems as simplistic layers or letting architecture sprawl into a mess of connecting lines in a web chart that takes more time to remember what’s involved so you don’t break anything rather than delivering value. When you start to think of complex systems as orbiting bodies it becomes easier (at least to me) to understand where new requirements should fall within the system. It’s easier to understand how new requirements can be assimilated into this model. They could fall effortlessly into the Sun or perhaps are huge dinosaur extinction level events for a planet that should cause a reevaluation of that particular context’s design. I also like the organization of data with it as I like to follow the recommendation of up to a single degree of separation from the source of truth to an edge.It’s inevitable that whatever method you choose to refactor a system you can’t avoid another revamp in the future as languages and technologies change. One arguable drawback I see to Solar Architecture, though I think it also rather fittingly makes sense, is if this technique were applied to the entire organization at the same time. Too much material will collapse this type of model (of course I was going to fit a black hole metaphor into this concept somewhere!) and instead should be considered with the company as the core of a galaxy with multiple solar systems orbiting it. In conclusion, I think the laws that hold the physical world together also apply to the intangible organization of our technological systems and I look forward to exploring this notion more.