I'm interested in a services-based architecture, loosely based on the concept of microservices. Our management is of the view that this is in place, as we are building Nuget Packages. I feel there is a different, but can't quite articulate... What is a "microservice" or "SOA" giving that is different from re-use of Nuget packages?
-
1you're gonna have to elaborate on your problem! NuGet is a technical tool for packaging applications and logic while microservices and SOA are architectural pattern. I do not see the correlation or how somebody would even attempt to associate the two! – enzian Aug 22 '16 at 06:56
-
On the one hand Nuget are just libraries and should be standalone (no connection to the database, no other services involved). On the other hand microservices and SOA are services (can be scaled up/out, can be monitored, ca be cached, etc). The difference between microservices and SOA depends on what you understand by SOA(see https://www.youtube.com/watch?v=wgdBVIX9ifA). – zoltanflavius May 15 '18 at 08:02
1 Answers
Claiming that using NuGet to reuse code is the same thing as "doing" SOA is a bit like saying that using a food processor is the same thing as cooking a three-course meal. The food processor may be related to the outcome, and useful during execution, even becoming a prerequisite occasionally, but that doesn't mean it can be directly compared in this way.
One way to counter this view is to argue that SOA is perfectly possible without any reuse of code, hence no requirement for package management. If you want to read about what it means to do SOA, see another post of mine here.
However, I doubt that this is a view you can defeat with logical reasoning. I suspect that what your management is really saying is "SJDoodle keeps going on about SOA? Sounds a bit expensive."
The good news is that you can practice SOA without letting anyone know you're doing it. Even if you're forced to build you application as a monolith, there is nothing to stop you architecting it with microservices in mind. Certain design patterns can be useful to you here, including the Ports and Adapters pattern and Command Processor pattern.
Martin Fowler has written about this before, and in some cases, it's better to start this way than trying to execute a services-based approach from the start.

- 30,562
- 14
- 91
- 126