Skip to main content
added 67 characters in body
Source Link
skott
  • 509
  • 2
  • 7

Separating them into individual services so that they can scale independently - good idea. For real-time responses, adding requests to the message queue will not help - you are right.

Network latency would be there if you are making a call to another service regardless of the queue, you have to ensure the services are in close proximity, have a circuit breaker while making downstream calls to ensure responsiveness is not taking a hit.

keep those state services in the same server and maybe control the amount of resources which can be used by those services

This is precisely the reason to move to Microservices dependingand scale horizontally - managing resources will get extremely hard on the scalesingle machine. Scaling vertically has limitations, in terms of cost, in terms of ease of scaling too. If your scale is not much, and don't see it increasing by much - you can consider this though, it's a lot simple but beware of its limitations.

Just a thought - You can think of deploying your services as a side-car. This will help reduce latency between services, provide different resource configurations, scale horizontally easily as well.

Separating them into individual services so that they can scale independently - good idea. For real-time responses, adding requests to the message queue will not help - you are right.

Network latency would be there if you are making a call to another service regardless of the queue, you have to ensure the services are in close proximity, have a circuit breaker while making downstream calls to ensure responsiveness is not taking a hit.

keep those state services in the same server and maybe control the amount of resources which can be used by those services

This is precisely the reason to move to Microservices depending on the scale. Scaling vertically has limitations, in terms of cost, in terms of ease of scaling too. If your scale is not much, and don't see it increasing by much - you can consider this though, it's a lot simple but beware of its limitations.

Just a thought - You can think of deploying your services as a side-car. This will help reduce latency between services, provide different resource configurations, scale horizontally easily as well.

Separating them into individual services so that they can scale independently - good idea. For real-time responses, adding requests to the message queue will not help - you are right.

Network latency would be there if you are making a call to another service regardless of the queue, you have to ensure the services are in close proximity, have a circuit breaker while making downstream calls to ensure responsiveness is not taking a hit.

keep those state services in the same server and maybe control the amount of resources which can be used by those services

This is precisely the reason to move to Microservices and scale horizontally - managing resources will get extremely hard on the single machine. Scaling vertically has limitations, in terms of cost, in terms of ease of scaling too. If your scale is not much, and don't see it increasing by much - you can consider this though, it's a lot simple but beware of its limitations.

Just a thought - You can think of deploying your services as a side-car. This will help reduce latency between services, provide different resource configurations, scale horizontally easily as well.

Source Link
skott
  • 509
  • 2
  • 7

Separating them into individual services so that they can scale independently - good idea. For real-time responses, adding requests to the message queue will not help - you are right.

Network latency would be there if you are making a call to another service regardless of the queue, you have to ensure the services are in close proximity, have a circuit breaker while making downstream calls to ensure responsiveness is not taking a hit.

keep those state services in the same server and maybe control the amount of resources which can be used by those services

This is precisely the reason to move to Microservices depending on the scale. Scaling vertically has limitations, in terms of cost, in terms of ease of scaling too. If your scale is not much, and don't see it increasing by much - you can consider this though, it's a lot simple but beware of its limitations.

Just a thought - You can think of deploying your services as a side-car. This will help reduce latency between services, provide different resource configurations, scale horizontally easily as well.