background preloader


"Microservices" - yet another new term on the crowded streets of software architecture. Although our natural inclination is to pass such things by with a contemptuous glance, this bit of terminology describes a style of software systems that we are finding more and more appealing. We've seen many projects use this style in the last few years, and results so far have been positive, so much so that for many of our colleagues this is becoming the default style for building enterprise applications. Sadly, however, there's not much information that outlines what the microservice style is and how to do it. In short, the microservice architectural style [1] is an approach to developing a single application as a suite of small services, each running in its own process and communicating with lightweight mechanisms, often an HTTP resource API. These services are built around business capabilities and independently deployable by fully automated deployment machinery. Componentization via Services

Related:  Veille InformatiqueMicroservicesComputersArchitecture

REST and MQTT: Yin and Yang of Micro-Service APIs It seemed that the worst was over – I haven’t heard a single new portmanteau of celebrity names in a while (if you exclude ‘Shamy’ which is a super-couple name of Sheldon and Amy from The Big Bang Theory but being a plot device, I don’t think it counts). Then when I researched for this blog post I stumbled upon project QEST, a mashup of MQTT and REST. Et tu, Matteo Collina? S.O.L.I.D: The First 5 Principles of Object Oriented Design S.O.L.I.D is an acronym for the first five object-oriented design(OOD) principles by Robert C. Martin, popularly known as Uncle Bob. These principles, when combined together, make it easy for a programmer to develop software that are easy to maintain and extend. They also make it easy for developers to avoid code smells, easily refactor code, and are also a part of the agile or adaptive software development. Note: this is just a simple “welcome to S.O.L.I.D” article, it simply sheds light on what S.O.L.I.D is. S.O.L.I.D stands for:

Building Microservices: Using an API Gateway - NGINX The first article in this 7-part series about designing, building, and deploying microservices introduced the Microservice Architecture pattern. It discussed the benefits and drawbacks of using microservices and how, despite the complexity of microservices, they are usually the ideal choice for complex applications. This is the second article in the series and will discuss building microservices using an API Gateway. [Editor: Further posts in this series are now available: When you choose to build your application as a set of microservices, you need to decide how your application’s clients will interact with the microservices. With a monolithic application there is just one set of (typically replicated, load-balanced) endpoints.

Building Microservices: Inter-Process Communication This is the third article in our series about building applications with a microservices architecture. The first article introduces the Microservices Architecture pattern, compares it with the Monolithic architecture pattern, and discusses the benefits and drawbacks of using microservices. The second article describes how clients of an application communicate with the microservices via an intermediary known as an API gateway. In this article, we take a look at how the services within a system communicate with one another. Introduction

The Quiet Crisis unfolding in Software Development The Quiet Crisis unfolding in Software Development About Me I’ve been working in software development for twenty-eight years. My current position is Senior Development Director at a software consulting company in Austin, Texas, a position I’ve held for just over six years. My progression was originally technical in nature — I started out as an Associate Programmer Analyst fresh out of college. Back in those days one of my favorite hobbies was making fun of the stupidity of management.

API gateway pattern Context Let's imagine you are building an online store that uses the Microservices pattern and that you are implementing the product details page. You need to develop multiple versions of the product details user interface: HTML5/JavaScript-based UI for desktop and mobile browsers - HTML is generated by a server-side web applicationNative Android and iPhone clients - these clients interact with the server via REST APIs In addition, the online store must expose product details via a REST API for use by 3rd party applications. A product details UI can display a lot of information about a product.

TIOBE Software: Tiobe Index TIOBE Index for January 2016 January Headline: Java is TIOBE's Programming Language of 2015! Java has won the TIOBE Index programming language award of the year. This is because Java has the largest increase in popularity in one year time (+5.94%). Java leaves runner ups Visual Basic.NET (+1.51%) and Python (+1.24%) far behind. At first sight, it might seem surprising that an old language like Java wins this award. Enterprise Integration Patterns - Message An enterprise has two separate applications that are communicating via Messaging, using a Message Channel that connects them. How can two applications connected by a message channel exchange a piece of information? Package the information into a Message, a data record that the messaging system can transmit through a message channel. Thus any data that is to be transmitted via a messaging system must be converted into one or more messages that can be sent through messaging channels.

Having the domain model separated from the persistence model - Enterprise Craftsmanship In this post, I’d like to write about a pretty common discussion in DDD circles: should one have the domain model separated from the persistence model? In other words, should you map your domain objects to the DB tables directly using an ORM or would it be better to use a separate set of Data Access Objects (DAOs) instead? Should a domain model serve as a persistence model? This question often arises when you try to build a rich domain model while working with a relational data store.