
Sex, love and relationships through the prism of microservice architecture
"When I shared sex, love and relationships - everything became much simpler ..." quote from a wise girl with a life experienceWe are programmers and deal with machines, but nothing human is alien to us. We fall in love, get married (get married), give birth to children and ... die. Like ordinary mortals, we constantly have problems of an emotional plan, when “we didn’t agree in character”, “we don’t fit together”, etc. ... We have love triangles, breaks in relationships, cheating and other emotionally colored events.
On the other hand, due to the characteristics of the profession, we love that everything is logical and one follows from the other. If you don’t like it, then what exactly? If you do not agree on the characters, then what specific part. The explanations in the style of “you do not spare me and do not love me” seem to us to be some kind of obscure abstractions that need to be measured (in what units the pity is measured) and give clear boundary conditions (what events should trigger this pity).
In modern psychology, a huge layer of abstractions and terminologies has been accumulated to denote the emotional side of human relations. When you come to a psychologist and say that you are not developing a relationship with a partner, you will be given a bunch of tips in the spirit of “be more tolerant of each other,” “you must first understand yourself and understand what is really important to you.” You will sit for hours and listen to how the psychologist will tell you pretty obvious things. Or you will read the popular psychological literature, the main essence of which will be reduced to the simple wording “do what you like and do not do what you don't like”. Everything else is a pleasant side dish to the little seed of this banal truth.
But wait, programming is a very unpredictable process. In the process of programming, figuratively speaking, we try to simplify the world around us to the level of abstractions. We are trying to reduce the entropy of the world around us by squeezing it into the logic of algorithms that we understand. We have accumulated tremendous experience in such transformations. We came up with a bunch of principles, manifests and algorithms.
And in this regard, the question arises - is it possible to apply all these developments to human relations. Let's take a look ... at mycoservice architecture.
From this point of view, marriage is a huge monolithic application that the further the more difficult it becomes to maintain. A lot of idle functionality has already accumulated (where is the freshness of the relationship), technical debt (when you gave your wife flowers for the last time), violations in terms of protocol interactions between parts of the system (I’m telling you about a new car, and you again “take out the bucket”), the system devours resources (both financial and moral).
We apply the approach of microservice architecture and, for a start, we will divide the system into its component parts. Of course, the breakdown can be anything, but here each is its own software architect.
Marriage is functionally composed of
- Financial subsystem
- Emotional subsystem (sex, love, feelings, everything intangible and poorly assessable)
- Communication subsystem (responsible for communication and interaction within the family)
- Subsystems of parenting (optional, as available)
Ideally, each of these subsystems should be autonomous. Not allowed patterns in the style of:
- you earn little, so my feelings for you fade away
- if you love me, buy me a fur coat
- I will not communicate with you because you do not satisfy me in bed
In a good microservice architecture, any part of it can be replaced without affecting the operation of the entire system.
From this point of view, the affair of a partner is nothing more than a replacement for the subsystem of sensory relationships.
A married woman, in turn, can find a rich lover, thereby replacing the financial subsystem.
Emotional communication within the family is replaced by external services in the form of social networks and instant messengers. The interaction API remains seemingly unchanged, like the person on the other side of the screen, but no technology can give a sense of proximity.
The illusion of abundance and accessibility on dating sites makes its contribution - you don’t need to make any efforts to establish communication. Swipe left to Tinder and you're ready for a new relationship from scratch. It’s kind of like an improved version of old-fashioned network protocols - going to the movies or cafes, but with the ability to click the Reset button and start the game again.
Whether such replacements are beneficial to the system as a whole is a debatable question and everyone can give their own answer. Is it necessary to separate the working monolithic application of relations, with its internal troubles and periodic failures, and whether it will fall apart when everything is sorted into shelves, the question is open.