• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Tim Cooke
  • Campbell Ritchie
  • Paul Clapham
  • Ron McLeod
  • Liutauras Vilda
Sheriffs:
  • Jeanne Boyarsky
  • Rob Spoor
  • Bear Bibeault
Saloon Keepers:
  • Jesse Silverman
  • Tim Moores
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
Bartenders:
  • Piet Souris
  • Al Hobbs
  • salvin francis

When creating REST APIs should we always create microservices or avoid it in some cases?

 
Ranch Hand
Posts: 2550
13
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
When creating a REST API, it is advantageous to create Microservices instead of a monolithic application of REST APIs, as it gives separately deployable units and reduces dependency and coupling. Are there any cases where one should avoid creating Microservices ?
thanks
 
Sheriff
Posts: 16669
278
Mac Android IntelliJ IDE Eclipse IDE Spring Debian Java Ubuntu Linux
  • Likes 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
There's not really a direct correlation between the two--in my mind, they are orthogonal decisions. You can have a REST API that is backed by microservices or you can have a monolith behind it.  That's kind of like asking if you should wear a red shirt of a blue shirt if you're going to call a plumber.
 
Monica Shiralkar
Ranch Hand
Posts: 2550
13
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Thanks

Junilu Lacar wrote:You can have a REST API that is backed by microservices or you can have a monolith behind it.



Any reason why we should not break that Mololythic application and break that into microservices as well?

 
Junilu Lacar
Sheriff
Posts: 16669
278
Mac Android IntelliJ IDE Eclipse IDE Spring Debian Java Ubuntu Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Besides the fact that many organizations can't even get their sh*t together around a monolithic app, much less manage the complexities of microservices? Moving to microservices is not a straightforward process, especially if the monolith is like most monoliths out there: a tangled mess of dependencies that are difficult to separate.

You need good separation and an understanding of where your seams are in your monolith. You need a disciplined engineering corps that knows how to automate things and set up pipelines, etc. I could go on and on.
 
Monica Shiralkar
Ranch Hand
Posts: 2550
13
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Thanks.

Junilu Lacar wrote:Besides the fact that many organizations can't even get their sh*t together around a monolithic app.



That sounds like for an existing application. Converting an existing monolythic application into Microservices may not be easy but what about the case for new application. If new application needs to be created for REST APIs, then should those always be microservices or here also monolythic may be preferred sometimes?

much less manage the complexities of microservices



I understand for an existing application. But do you mean for new applications as well? If so what kind of complexities?
 
Marshal
Posts: 3720
533
Android Eclipse IDE TypeScript Redhat MicroProfile Quarkus Java Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Monica Shiralkar wrote:When creating a REST API, it is advantageous to create Microservices instead of a monolithic application of REST APIs, as it gives separately deployable units and reduces dependency and coupling. Are there any cases where one should avoid creating Microservices ?


I don't see how your arguments have anything to do with the API that a service/application might use.

Did you read somewhere that RESTful APIs are intended for microservice architectures?
 
Monica Shiralkar
Ranch Hand
Posts: 2550
13
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Ron McLeod wrote:

Did you read somewhere that RESTful APIs are intended for microservice architectures?



Microservices are not limited to Web Services but one of the examples can be that multiple REST APIs with single purpose and independently deployable units which do not have dependency on each other instead of having a monolithic application where if one thing goes down it may affect the other as well.

 
Ron McLeod
Marshal
Posts: 3720
533
Android Eclipse IDE TypeScript Redhat MicroProfile Quarkus Java Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Monica Shiralkar wrote:Microservices are not limited to Web Services but one of the examples can be that multiple REST APIs with single purpose and independently deployable units which do not have dependency on each other instead of having a monolithic application where if one thing goes down it may affect the other as well.


But wouldn't that same reasoning apply to applications or service providers which use non-RESTful APIs as well?

I don't feel the type of network API plays a significant part in the decision making for monolithic vs. microservice architecture.
 
Monica Shiralkar
Ranch Hand
Posts: 2550
13
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Do you mean SOAP web services? Yes, it would.
reply
    Bookmark Topic Watch Topic
  • New Topic