I have heard this term many times, and it makes sense in theory. That app is doing many things and it'd be easier to manage, scale, test and improve them if they are not completely connected to each other and work like functions instead. This way you could have option to even easily replace components of app with different languages easily as long as output remains consistent.
However i dont get this idea practically, how is it constructed. Impression i get is that all microservices talk to each other using JSON/Auth/API and share database.
Is it true? it makes sense too, but what about performance hit. It's certainly faster to send data from one controller to another in same app then have it go to another server and be refetched form database.
What about streaming. Is streaming possible between api calls instead of fetching from database?
won't authentication step between microservices further slow it down? is authentication between servers/microservices even needed.
do microservices running on same server need to talk to each other using api, even though they are on same machine..
Where can i learn more about this.