Skip to main content

Posts

Showing posts from 2017

Organizing microservices - Modern Integration

Microservices is probably one of the most popular buzz among my fellow developer friends, and I do like the concept of being flexible, agile and having simply having more choices. But as a person that worked in the software integration space for years, I started to see some resemblance of the old ESB days.
Looking at the problem from ten thousand feet up. A decade ago, we had to come up with a better way of organizing the spaghetti connection in between systems, stop duplicating effort on the same piece of business logic. That is when Service oriented architecture(SOA) became popular. By modularizing services, sharing them among others systems, and organize ways of communication, routing of data. And ESB is one implementation of that, maybe not necessary how it should be done.
I was very fortunate to participate in many of these kind of integration projects, and lead some myself. We worked with various middleware vendors, at the time the solutions was all about ESB. By removing the com…

Reference architecture of Agile Integration

OK. I said it. Integration is still around, but in different form from my last blog post. So what does modern integration looks like? Looking at how agile scrum has taken over traditional waterfall development framework, by enable shorter deliver cycles, faster feedback, and having the flexibility to rapidly adapt changes. I believe it’s time for traditional integration to be agile again. By breaking up traditional ESB into distributed microservices.
A little recap of what should be in Agile integration: Distributed Integration Lightweight, support distributed deployment Pattern Based Integration Reusable Connectors Microservices Containers Cloud native solutions Lean artifacts, individually deployable Container based scaling and high availability API Well defined, re-usable, and well managed end-points Ecosystem leverage
Base on these three principle, I was asked to create a reference architecture for it. After giving some thoughts into it, drawing up numerous boxes and diagram, something clic…

The rise of Agile Integration, Integration is not DEAD nor LAME!

I wanted to blog about this for a very long time, but because of work and being too lazy to turn on my laptop on the weekends, now I finally have a couple of hours to sit down and start blogging.

"Integration is DEAD."
"No, no, let's talk about microservice!!"
"What is that again? Integration, you mean SOA? It's lame... ".

These makes the majority of the percentage when I talk about Integration. In fact, if you happen to be in any the software conference, you see the rooms full when it's about "container" and "microservice." I understand the nature of a developer, always seeking for the latest and greatest technology out there. BUT!! In my opinion, I don't think Integration is going AWAY if you containerize your application. Neither does it will DISAPPEAR in a microservice architecture. In fact, Integration just gets more complicated and tricky when you try to break an application into smaller pieces and have them runni…

Red Hat JBoss Fuse - Applying API Best Practices in Fuse

API plays a huge part in modern integration architecture design, a good design will allow your application to thrive, a bad design will end up on the cold stone bench and eventually vanishes :(....
Well, to avoid this tragic happens to our APIs, there are certain guidelines that we might want to consider to follow, I know there are lots of debates out there on the best practice of API design, and I don't think it will ever end. It is really depending on many different factors, mostly dominate by the size and complexity of the integration solution, and the company culture. And many of them are related to how to manage it instead of designing. (Of course there are many others like API security, how to do versioning and all these sorts of things. These are more closely related to API management, that I will not cover in this post. )

This is what I think is a good API,

1. Intuitive-  It must be easy to understand and use without documentations.
2. Stable-  Not only it should be runnin…