• 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 ...
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
  • Mikalai Zaikin

Spring Microservices in Action: Spring for microservices vs other Java Framework

Posts: 2
  • Likes 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Dear John Carnell,
what are in your opinion the strong points that Spring has with respect to a microservices architecture, compared to other frameworks, like Play, Struts, etc?
Posts: 93
  • Likes 2
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi Diego,

I really like what Spring Boot and Spring Cloud has done for building microservices.  I have been a Spring developer for a long-time and when I first tried Spring Boot, I was blown away with how much it simplified day-to-day development of JSON/REST based services.  Its well thought out use of annotations for doing common tasks like route declaration and JSON serialization make it extremely easy to get started.  I can get a deployable microservice written in under 5 minutes.  Now, I will qualify that in saying it will be a helloworld microservice.  Spring Boot helps keep the "framework" out of my way while writing code.

Microservice-based architectures are extremely powerful because they focus on building small, independent services using industry-accepted practices (eg. REST and JSON). However, because a microservice-based architecture is a distributed architecture it has a tradeoff in terms of complexity.  With a distributed application you need things like a configuration management service, service-discovery, intelligent routing.  Spring Cloud really takes together a large collection of independent services (e.g. Netflix, HashiCorp, etc...) and provides simple wrappers to get those services up and running quickly.  Thats huge early on in a project because trying to add these features later after there are a large number of services in place is very difficult and time-consuming.  

Both Spring Boot and Spring Cloud based what I call the "carnell monkey test."  I consider myself a pretty average developer and if a "monkey like me" can get the framework up and running, that is usually the sign of a good framework.  With Spring Boot and Spring Cloud this was the case.

As for Play and the other frameworks.  I have not done anything with Play or Struts (in a long time).  My opinion on frameworks is that you have to use the one that fits the context that you are working in.  That being said, the great thing about a microservices architecture is that it gives you the flexibility to try out new technologies.  In the past, you had to make a big bet when picking the technology you were going to write your application in.  With the small size of microservices, you can "hedge" your bet by taking a new technology and writing a single service with it and see if the technology will work for your team.  

For the product my division works on, PureCloud we have 200 services written in Java, Node.js, Clojure, Python, Go and I think some Scala.  We are constantly evolving and learning what frameworks and languages work best for us.

I hope that answered your question.

    Bookmark Topic Watch Topic
  • New Topic