I am working on designing a brand new Data Ingestion Pipeline with the Key highlights of the new project are as follows:

  • Download and Update data to/from SharePoint using SharePoint APIs
  • Download and Update data to/from JIRA/incident management application using JIRA APIs
  • Download and Update data to/from SQL sources using provided APIs
  • Download and Update data to/from external custom applications using APIs

I am considering the micro-services architecture for the above project where I will be looking at creating 4 separate services for each of the above purpose.

And finally, a batch processing client that would execute all these API services using C# .NET

But I have been wondering if implementing micro-services architecture will be overkill, and rather all I really need is a single client calling all these APIs directly without having to create above individual services.

And additionally, regarding setting up the project in Visual Studio, should all these services be in their own separate solutions or rather be a part of one .NET solution with multiple projects in it.

  • What benefits do you hope to get by using microservices? – Robert Harvey Jul 10 at 14:47
  • Loose coupling is one of the biggest advantages i can see. we currently have a monolithic architecture and it's a pain to manage. – Nanu Jul 10 at 14:48
  • 1
    Those four bullet points in your question just look like four classes to me. – Robert Harvey Jul 10 at 14:50
  • 3
    And the "loose coupling" you desire doesn't come without a price. Usually, one would opt for microservices only in very large systems, so that each service can be developed and maintained independently. – Robert Harvey Jul 10 at 14:51

Opinion from fellow stack exchange user - This question is opinion based. Using micro services only makes sense if you are planning to reuse the services for other applications. Otherwise you would have too much unnecessary overhead. If there is no intention to reuse all or some of the services, you should use a simple component design to encapsulate responsibilities under the hood of one single service API (e.g. REST).

But in general: the nature of micro services is that each service is independent and loosely coupled to other services. This would require them to be individual solutions that can be individually deployed. Each service will likely consist of multiple assemblies (projects)

  • Um, why did you post an opinion-based question on a non-opinion-based venue, and then answer the question with an opinion-based answer? – Robert Harvey Jul 10 at 14:47
  • @RobertHarvey- I am looking for opinions indeed. this post is moved from stack overflow site and the answer i posted above was one of the opinions shared there and i din't want it to lose. Don't we have any opinion based avenues on stackexchange? – Nanu Jul 10 at 14:49
  • 1
    "Using micro services only makes sense if you are planning to reuse the services for other applications." There are other motivations for microservices, namely independence of ownership and deployment. – Erik Eidt Jul 12 at 15:03

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.