0

Suppose this system:

input => service A => service B => service C & service D (both can be run parallel) => service E => output

  • Each service must have horizontal scale up ability.

How can I design this system using c# efficiently? Services can be either asp.net web api or windows service.

Majid Hazari
  • 694
  • 6
  • 13

1 Answers1

0

There would be advantages to using message queuing for communicating between your services as it provides for async and fault-tolerant communication between them. Queued communication scales out well and enables parallel execution of activities very easily.

In terms of technology, you could use NServiceBus and the Particular Service Platform (full disclosure - I am the original creator of NServiceBus) or, if you're looking for something free then MassTransit could be a good choice.

If you're looking for a comparison between the two, see this SO question:

NServiceBus vs MassTransit

Community
  • 1
  • 1
Udi Dahan
  • 11,932
  • 1
  • 27
  • 35