Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>IMO - answer is it depends on a lot of factors of your application.</p> <p>Assuming that you are building a non-trivial application (i.e. is not a college/hobby project to learn SOA):</p> <ul> <li><p><em>User Service / Event Service / Payment Service</em> -- Create its own DLL &amp; expose it as a WCF service if there are more than one applications using this service and if it is too much risk to share the DLL to different application<br> -- These services should not have inter-dependencies between each other &amp; should focus on their individual area<br> -- Note: these services might share some common services like logging, authentication, data access etc. </p></li> <li><p><em>Create a Composition Service</em> -- This service will do the composition of calls across all the other service<br> -- For example: if you have an Order placed &amp; the business flow is that Order Placed > Confirm User Exists (User Service) > Raise an OrderPlaced event (Event Service) > Confirm Payment (Payment Service)<br> -- All such composition of service calls can be handled in this layer<br> -- Again, depending on the environment, you might choose to expose this service as its own DLL and/or expose it as a WCF<br> -- Note: this is the only service which will share the references to other services &amp; will be the single point of composition </p></li> </ul> <p>Now - with this layout - you will have options to call a service directly, if you want to interact with that service alone &amp; you will need to call the composition service if you need a business work flow where different services need to be composed to complete the transaction.</p> <p>As a starting point, I would recommend that you go through any of the books on SOA architecture - it will help clear a lot of concepts. </p> <p>I tried to be as short as possible to keep this answer meaningful, there are tons of ways of doing the same thing, this is just one of the possible ways.</p> <p>HTH.</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload