IMO, you don't need a service mesh until you have a complex topology (i.e., services that call other services that call other services). A service mesh fundamentally is designed so that when you have a deep topology, you can manage/mitigate failures better by limiting blast radius/cascade failure/improving mean time to respond.
However, there are a ton of techniques you should consider before you go to a service mesh:
* canary deployments / rolling updates / etc. * monitoring via APM, distributed tracing, etc. * health checking / auto scaling via Kubernetes or equivalent
(I actually wrote an article about this recently that will be published in InfoQ, but it's under embargo. If you ping me, I can send you a not-for-public-yet version.)