Skip to main content

Posts

Building Micro architectures with Micro API Gateway

Microservices Architecture (MSA) is becoming the SOA of the modern era. Like the way SOA improved the enterprise software architecture with new patterns and architectures around that, Microservices Architecture (MSA) has tripped off several new architectural styles and new concepts around how people build enterprise software. Some of them are - Service Mesh — Technique to communicate amongst microservices - Serverless — Running your code as functions on cloud - Micro Integration — Run your integrations as microservices - Micro Gateway — Run your api gateways in a microservices compatible manner All these architectures can be categorized under the common umbrella of “microservices” and can be called as “micro-architecture”. In this post, I’m going to introduce the micro-architecture and how Micro API Gateway can be utilized in such an architecture.                                   Figure...

WSO2 Identity Server 5.5.0 - Cheat Sheet

WSO2 Identity Server Architecture WSO2 Identity Server a.k.a WSO2 IS is a fully fledged Identity and Access Management (IAM) solution which provides capabilities for your enterprise to secure your resources. The product is build with a rather simplistic but powerful architecture to support variety of identity and access management requirements. Below figure explains the high level architecture of the WSO2 Identity Server. Figure 1: WSO2 Identity Server Architecture The main components included in the above figure are explained below. Service Providers - These are the applications which needs to be secured using WSO2 IS as the authentication and authorization framework. This includes your mobile applications, web applications, SaaS applications, etc. Inbound Authentication - This component deals with various protocols like SAML, OIDC, WS-Federation, OAuth, etc. which are used to authenticate the users by the service providers (applications). Authentication Framewor...

Handling special characters in URLs with WSO2 ESB

Let’s say you have a URL which needs to send an email address as a query parameter. If you create a standard REST API within WSO2 ESB (or EI) and try to match the query parameter in uri-template, it will fail during the execution time. As an example, if you have the below API definition. <api xmlns="http://ws.apache.org/ns/synapse" name="EmailAPI" context="/voice"> <resource methods="POST GET" uri-template="/details?email={email}"> <inSequence> <log level="full"> <property name="EMAIL" expression="$url:email"/> </log> <respond/> </inSequence> </resource> <resource methods="POST GET" uri-template="/phone/{number}"> <inSequence> <log level="full"> <property name="PHONE" expression="$ctx:uri.var.number...

How to select a programming model for your enterprise software development

Microservices hype is not over yet. There are technologies like serverless computing and multi cloud platforms coming up and they will eventually increase the need for microservices style programming and application development. When it comes to enterprise software development, we can see that it is a mixture of traditional soa style systems, api driven systems which are backed my microservices or above mentioned soa systems, cloud based SaaS applications as well as proprietary software systems running on premise. Enterprise is going to be like this for a foreseeable future. It is quite important that as an architect or a senior leader who is responsible for an enterprise software architecture to understand the proper approach to built your software eco system which will be an ever important factor to your business. When it comes to building such a complex system, there are 3 main approaches stands out Polyglot programming model Platform based programming model (open source) Ven...

WSO2 MB vs Apache Kafka comparison

When it comes to message broker solutions, those can be categorized into 2 main types Standards based traditional message brokers (e.g. Apache ActiveMQ, RabbitMQ, WSO2 MB, Apache Qpid) Proprietary modern message brokers (e.g. Apache Kafka, Kestrel) Based on your requirement, you need to select the best category and then go for a specific vendor based on your needs, IT capacity and financial capabilities. In this post, I’m comparing 2 popular message brokers (WSO2 MB and Apache Kafka) from 2 categories. Even though it discusses about 2 specific brokers, you can consider this when comparing these 2 categories of message brokers. Feature WSO2 MB Apache Kafka Messaging semantics Rich messaging semantics with features such as - Transactions - Persistent/In-memory Relaxed and proprietary Supported protocols JMS 1.0/1.1, AMQP, STOMP, MQTT Propreitary protocol written over TCP Standard messaging supports well known standards based messaging - pub/sub - request/reply - point to...