Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥

Microservice Communication Done Right

Microservice Communication Done Right

Are you dealing with microservices that should have been a monolith? Or are you deploying monoliths and wish you could build microservices? In this talk we will look at communication as both the main driver and blocker for microservices adoption. We will go over organizational and technical patterns and best practices; we will showcase reference implementations and discuss debugging options useful when you must get your hands dirty. Finally, we will go over practical tips on what you can do now to improve your life if you are deep in the microservice trenches.

Avatar for Posedio

Posedio PRO

June 26, 2023
Tweet

More Decks by Posedio

Other Decks in Programming

Transcript

  1. 3 HI • Damjan Gjurovski • Software engineer (java), Software

    architect (microservices), Cloud architect (GCP) • Cover the how, the what, the where and the why • Let’s talk about practical steps on improving microservice systems
  2. MICROSERVICE COMMUNICATION DONE RIGHT 1. How communication patterns evolved into

    microservices 2.What makes a good microservice architecture 3.Where it all went wrong 4.Why you should not lose all hope
  3. 15 TOO MUCH OF A GOOD THING • Services are

    under the control of a single team • Services are usually deployed together • The effort around deployment and orchestration overtakes the effort of developing the services
  4. 16 WE ARE JUST AS IMPORTANT AS THEY ARE •

    Every team gets the same number of services • Teams are very protective of their services • The services don’t seem to belong together by any other metric aside from belonging to the same team
  5. 17 LOOKS GOOD FROM UP HERE • Architecture was decided

    far away and long ago • Change is difficult and discouraged • Might look good on paper but doesn’t survive contact with reality
  6. 19 TOO MUCH OF A GOOD THING • Stabilize external

    interfaces • Consolidate • Find the fine line and walk it • Automate tasks • Do painful things more often
  7. 20 WE ARE JUST AS IMPORTANT AS THEY ARE •

    Stabilize external interfaces • Use contract testing to catch changes early on • Communicate but don’t blame • Defensive programming, built-in resiliance
  8. 21 LOOKS GOOD FROM UP HERE • Stabilize interfaces •

    Communicate with colleagues • Observability