Nowadays most systems are distributed.
Meaning that the system is separated into multiple components that lie on
different machines.
But have you ever thought about how do they communicate with each other?
How does service A use a class that lies in service B's codebase?
One way to do that