Posts

Showing posts with the label Microservices

Microservices based application design and deployment

Image
In this post, I'll discuss the high level overview of next generation applications design and deployment.  Microservices is the emerging trend to break down your business functionality in to smaller chunks and deploying/scaling/managing them independently for an enterprise application. However it is the sole & discrete decision of adoption of this software design for existing or new applications in an enterprise. Consider a small business scenario where we have a web based application called 'Guestbook', consists of following technical components- 1. Developed using Java/J2EE 2. Services (Microservices) developed using Spring Boot   3. MySQL Database. 4. ZUUL Proxy for API Gateway 5. Eureka for Service Registry Below would be the sample flow of application access as a micro services based software design- As shown above, end user connects to the WebUI. The application's all services/microservices are deployed independently which in...

Spring Boot V/S Vert.x

Image
S. No Parameters Vert.x Spring boot 1 Primary Focus Vert.x is designed to build your large-scale, super-scalable and distributable web applications which might have less complex business logic in them, but need to perform reliably under massive load. SpringMVC is focused on enterprise processes and enterprise applications with lower user counts. 2 Reactive Manifesto 1. Asynchronous messaging 3. Elastic 4. Resilient 5. Responsive Vert.x is reactive. Vert.x uses asynchronous messaging, a mechanism that scales. It is particularly useful in mircoservices because messages do not care whether you send them across the network or locally in the same JVM. Spring is not reactive. Spring does not support asynchronous messaging. 3 Non-blocking, event driven runtime Vert.x provides a non-blocking, event-driven runtime ...