47897

Should actors/services be split into multiple projects?

I'm testing out Azure Service Fabric and started adding a lot of actors and services to the same project - is this okay to do or will I lose any of service fabric features as fail overs, scaleability etc?

Answer1:

My preference here is clearly 1 actor/1 service = 1 project. The big win with a platform like this is that it allows you to write proper microservice-oriented applications at close to no cost, at least compared to the implementation overhead you have when doing similar implementations on other, somewhat similar platforms.

I think it defies the point of an architecture like this to build services or actors that span multiple concerns. It makes sense (to me at least) to use these imaginary constraints to force you to keep the area of responsibility of these services as small as possible - and rather depend on/call other services in order to provide functionality outside of the responsibility of the project you are currently implementing.

In regards to scaling, it seems you'll still be able to scale your services/actors independently even though they are a part of the same project - at least that's implied by looking at the application manifest format. What you will not be able to do, though, are independent updates of services/actors within your project. As an example; if your project has two different actors, and you make a change to one of them, you will still need to deploy an update to both of them since they are part of the same code package and will share a version number.

Recommend

  • How to achieve orchestration with spring boot micro service? [closed]
  • There is an easy way to add social login on Jhipster microservice Gateway?
  • More than one gateway in jhipster
  • Groupby a column from another (same # of rows) dataframe
  • function declaration within function declaration with same name javascript
  • Alternate (Free) to AOP PostSharp for method tracing (and exception)
  • Entity Framework Core: Include many-to-many related objects in WebAPI
  • Java : Simple XML not parsing the xml. Gives Exception
  • Creating a layer of gradient within an SVG path dynamically
  • WebApp in AppServices vs CloudService
  • How do i find all references to a user control
  • Implementing Oracle.Web.dll, Oracle.DataAccess.dll 64-bit failed on Windows Server 2008 with IIS 7.5
  • In Akka, is ActorContext thread safe?
  • Consuming a web service with the Netbeans Platform
  • Add Windows Feature from C#
  • back button function for phonegap windows phone 7
  • Can long-polling be achieved in Restlet by just making the thread sleep?
  • Action Pack components in Rails
  • Retaining data after updating application
  • Compare struct to a constant in C
  • How to use Windows Media Foundation with UWP without a topology
  • how do i write assembly code from c#?
  • Django simple Captcha “No module named fields” error
  • x64 applications using gdi+: what are the consequences on performance?
  • How to suppress a dialog
  • Atlas images wrong size on iPad iOS 9
  • If I include Java 8 in my Android app does that affect which devices it will work on?
  • Email format validation in mvc3 view
  • C# - Is there a limit to the size of an httpWebRequest stream?
  • C# - Serializing and deserializing static member
  • Spray.io: When (not) to use non-blocking route handling?
  • Bug in WPF DataGrid
  • How to add date and time under each post in guestbook in google app engine
  • Incrementing object id automatically JS constructor (static method and variable)
  • Javascript Callbacks with Object constructor
  • Hibernate gives error error as “Access to DialectResolutionInfo cannot be null when 'hibernate.
  • Proper folder structure for lots of source files
  • coudnt use logback because of log4j
  • Is there any way to bind data to data.frame by some index?
  • How can I use `wmic` in a Windows PE script?