Postagens

Microservices in Practice

Imagem
Nowadays, Microservices is one of the most popular buzz-word in the field of software architecture.  There are quite a lot of learning materials on the fundamentals and the benefits of microservices, but there are very few resources on how you can use microservices in the real world enterprise scenarios.   In this post, I'm planning to cover the key architectural concepts of the Microservices Architecture(MSA) and how you can use those architectural principles in practice. Monolithic Architecture  Enterprise software applications are designed to facilitate numerous business requirements. Hence a given software application offers hundreds to functionalities and all such functionalities are piled into a single monolithic application. For examples, ERPs, CRMs and other various software systems are built as a monolith with several hundreds of functionalities. The deployment, troubleshooting, scaling and upgrading of such monstrous software applications is a nightmare. Service...

Building a connected Retail IT architecture - "Connected Retail Reference Architecture"

Imagem
This is a recent white paper that I have written on building a Connected Retail IT Architecture using a middleware platform. Here we discuss about the typical structure of a Retail IT system and the common problems that we face when building an agile Retail IT. This provides a reference architecture for any Retail IT system and then I try to realize it with the WSO2 Middleware platform. To become a successful business in the ever-changing retail market, the retail business must have a connected retail IT architecture. This retail IT system should be able to connect with existing legacy systems, services, and data. At the same time, it would need to cater to demanding customer needs, flexibility, and agility in exploring new markets, expanding IT capabilities inside and outside the organization (SaaS), and enhance overall performance of the IT system. This white paper will discuss the importance of creating a connected retail system today and explain how a complete middleware platform c...

The Past, Present and Future of Enterprise Integration

The Evolution of Enterprise Integration -

Recently I have written a white paper on the evolution of Enterprise Integration where I discussed about the history of Enterprise Integration, SOA, ESB, API-Management and the future of integration technologies such as iPaaS(Integration Platform as a Service). The need to seamlessly connect cloud and mobile apps, multiple data streams, social media, and on-premises systems is challenging IT groups to keep pace with a rapid evolution in enterprise integration. A new white paper from WSO2 addresses this demand by presenting how to implement a modern integration platform that empowers the enterprise to build an internally and externally connected business. The white paper, “The Evolution of Integration: A Comprehensive Platform for a Connected Business,” was written by WSO2 Software Architect Kasun Indrasiri. It begins by discussing the several architectural approaches to integration. The paper then explores how the bus architecture and the advent of the service-oriented architecture (SO...

Understanding Reactor Pattern with Java NIO

Imagem
Why non-blocking IO A typical server application, such as a web server, needs to process thousands of request concurrently. Therefore, the modern web server needs to meet the following requirements. Handling of thousands of connections simultaneously (significant number of connections may be in idle state as well) Handling high latency connections Request/response handling needs to be decoupled Minimize latency, maximize throughput and avoiding unnecessary CPU cycles Hence, to cater to such requirements, there can be several possibilities in the server application architecture. Having a pool of sockets for each client, and periodically polling them: This is the most straightforward approach; however, it is more or less impractical without non-blocking sockets. This is extremely inefficient and never scales with the increasing number of connections. Thread per socket: This is the conventional approach and was initially used in some applications and this is the only practical solution wi...