Communication between microservices SNS or SQS


I’m implementing CRM microservices demo.

I divided it into the following services:

  • inventory service (multi-warehouse)
  • sales service
  • resource service
  • logging service

For Sync communication, I used direct lambda call for example sales service deduct the quantity from inventory service.

For Async communication, I used SNS example: add quantity to inventory service warehouse increase total on the product table in sales service.

Is using SNS here is correct? because I see no guarantee message is received when using SNS ex, redeploying service or any issues happens but SQS store message for some time and it’s guarantee that the message is received by one subscriber.

I’m using SQS for send logs to logging service which it’s index log data to ElasticSearch SQS here is right too?


Maybe this post can help you.