Win a copy of Rust Web Development this week in the Other Languages forum!
  • 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 ...
  • Tim Cooke
  • Campbell Ritchie
  • Ron McLeod
  • Liutauras Vilda
  • Jeanne Boyarsky
  • Junilu Lacar
  • Rob Spoor
  • Paul Clapham
Saloon Keepers:
  • Tim Holloway
  • Tim Moores
  • Jesse Silverman
  • Stephan van Hulst
  • Carey Brown
  • Al Hobbs
  • Piet Souris
  • Frits Walraven

NextGen Architecture, Technologies and related questions

Ranch Hand
Posts: 160
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
my recent read is all about building web applications with technologies moving away from monolithic architecture to micro-service based reactive & scalable applications.

With too many 'Jargons-Overload' and to bring some sanity to my thinking, I am trying to think out aloud by documenting my understandings and raising questions (however trivial/stupid it could be).

Please do share your thoughts/feedback/comments/amswers around these. Feel free to correct any of my incorrect understanding.

  • Spring MVC - to build RESTfull services (which will contain different business functionality implemented as multiple services
  • API Gateway - to validate calls to these RESTfull services (aka API calls) and to Orchestrate across multiple services/APIs
  • Servlet 3 (Async) - to build Asynchronous Server side (especially Servlets) code
  • RxJava - to build Asynchronous Server side code (can be tied with Spring MVC to provide Async feature)
  • Futures , Observables - No clarity yet. I am still reading
  • Play , Akka & Scala - A web framework, message driven run-time and programming language to develop reactive applications (meaning high performance, scalable & event driven)
  • WebSockets - to send messages to a server and receive event-driven responses without having to keep continuously polling the server for a reply
  • Node.js/Backbone.js - a) to utilize the RESTfull services built as Microservices b) Redirect updated Model/Data to multiple views for multiple user channels c) API gateway could also be built using this server side javascript

  • Question # 1 Could somebody help in putting together complete architecture picture of where, how all these technologies fit and/or compliment each other ? I will give a shot and update a picture later.

    Question # 2 Is the combination of Play, Akka & Scala equivalent and replacement to the combination of Spring MVC + Servlet 3 Async + RxJava ?

    Question # 3 If i use Node.js/Backbone.js , do they support the WebSockets functionality, or do i have to use a another library that could support it ? If so, for what purpose will i use WebSockets for ?

    Question # 4 How do I use Servlet 3 (Async) to build my micro-services ? Instead of writing plain Servlets in Servlet3.0 spec, should I use RxJava along with SpringMVC for this asynchronous feature ?

    Question # 5 If I can bring concurrency in Controler layer (Servlet/SpringMVC), how can I bring it in rest of the layers after it ? Else, would it truly give me the due advantage ?

    Question #6 What are Java Futures, Observables ? Are they components or Libraries used to implement the Message/Event driven architecture in my other layers ?

    Question #7 Where would Client-Side-MVC fit in this whole picture ? and what advantage it could offer in such a scenario ?
    With a little knowledge, a cast iron skillet is non-stick and lasts a lifetime.
      Bookmark Topic Watch Topic
    • New Topic