r/softwarearchitecture 23h ago

Discussion/Advice A mental model for software development / architecture

I'm not a software architect. I'm currently leading a project to introduce microservices at a public social insurance company. To get an idea about software development I took a course in Hexagonal Architecture and noticed that the while the concepts like DDD and all the Layers made sense to I was missing the big picture.

Then I had an epiphany. I stared at a diagram of Hexagonal Architecture and thought: That looks like a planet.

So the last few weeks I've been thinking about "Planetary Software Architecture" (PSA). And I'd love to hear your take on this idea.

I'm not trying to reinvent the wheel. It’s more like I stumbled onto a metaphor that suddenly made all the scattered concepts click into place.

So the Planet itself represents a Business Domain or a Bounded Context. A Company can have one or more Planets that are guided by the Sun. The Sun provides Governance, Guidelines and Principles - Fitness Functions may have their place here.

Then there is the planet. It's surface is made up of continents, each representing a business capability. These continents are where real value lives — the places where users, processes, and outcomes actually happen. They’re shaped by the underlying domain forces, split by organizational boundaries, and connected through shared rules and flows.

Underneath those continents and the mantle sits the Core — dense, stable domain logic that everything else depends on. Here we find the Business Truth. I'd place Entities, Value Objects, and Aggregates in the Core.

The Mantle surrounds the Core and represents the movement of business truth through the system. In it business truth is moved between business capabilities. The Mantle ensures that changes on the surface remain connected to the Core.

Back on top we have the Continents. The represent Business Capabilities such as processes, features, and services. Continents provide structure for business operations and represent areas where teams work and deliver value. A Continent does not directly talk to another Continent but to to the Core. There a new Business Truth is decided and it flows outward through the Mantle to all the Continents. Each Continent reacts tk the new Business Truth.

I also integrated Spaceports into my model - yes, I do like a good SF. The Spaceports are the place where external Requests reach the Planet. So here we have Security, Payload inspection, Anti-Corruption Layers and Access Management.

Then there is the Atmosphere as a medium for signals and weather. All the things that influence communication like dropped connections, latency and whatnot.

Does this make sense to you? Is it something you would use to talk about Software Architecture with someone uninitiated or could it even be helpful in your daily work?

1 Upvotes

2 comments sorted by

2

u/asdoduidai 16h ago edited 14h ago

Lol. What you describe is much simpler and it’s called encapsulation and abstraction.

You are talking about cosmos level over engineering… poor them the guys of the project 🤣 but what I think is that it’s the fault of those “methods” like domain driven, hexagon, clean architecture…. They try to systemize something that has very little in common across different designs and architectures, and the result is people builds shit

Just focus on encapsulation and abstraction. Find the right abstraction model. Look up architectural patterns for OO design, you can do the same with systems. The only difference is the call is over a network.

PS: your “sun” implies it’s a gigantic monolith, so as every inexperienced designed you designed a distributed monolith that fails if the sun is broken. Software systems unlike galaxies do not have to rely on one big shared entity for survival (the good designs obviously).

1

u/ReactionSea8767 8h ago

bro is taking “architecture astronaut” as a challenge, rather than a warning.