Hat tip to John Evedemon for the heads up on this one. Martin Fowler is peddling a new approach, 'Microservices' which... wait for it is a way of developing applications as a suite of services. Each one of which has its own process thread and 'communicates via lightweight mechanisms' such as.... over HTTP.
Martin Fowler really should know better than this in not paying any heed to what has gone before and promoting an approach as if its actually new. The article reads like an extremely basic description of SOA from about 2000 without either the industrialisation of WS-* or the dynamic power of things like Jini. Above all it doesn't move forwards the question of how to architect such service architectures and how they need to map to the business and how although there might be fine grained services it is critical to understand the management structure and hierarchy of those services to actually enable the degree of autonomy and flexibility required in these sorts of architectures.
Microservices is just another take on SOA and one that doesn't move the game forwards as it yet again focuses on technical aspects over the business architecture that is realised. Putting forwards as new something that would be recognisable to people working on CORBA in the 90s and certainly Web Services in 2001 is just poor quality advice. It neither learns from the past, educates the reader nor moves the game forwards, its just selling an old approach with a new name.
Microservices? What is that SOA 3.0? Nope its just an old school form of SOA without the learnings that came from doing that.
But wait there is more, you'll be stunned to know that these services can be built using different programming languages and even use different data stores.
Now down in the footnotes it makes a reference to Netflix talking about 'fine grained SOA' so its there that we begin to get the sniff of an old idea wrapped up in some shiny new wrapping there are a few things you need to do when saying this. The first is critical don't learn or reference previous approaches except negatively.
Most languages do not have a good mechanism for defining an explicit Published Interface.Now I really wish there was an approach that enabled a Service to publish a definition of itself of the Web, a sort of Web Service Description, if only there was such a language I might call it... oh I don't know Web Service Description Language. The rest of the article talks about things that were common discussions around 2001, making things independently deployable but recognising that interface changes can have knock on impacts. Hell I could even think of an Interface Definition Language or IDL that might do that as well.
Martin Fowler really should know better than this in not paying any heed to what has gone before and promoting an approach as if its actually new. The article reads like an extremely basic description of SOA from about 2000 without either the industrialisation of WS-* or the dynamic power of things like Jini. Above all it doesn't move forwards the question of how to architect such service architectures and how they need to map to the business and how although there might be fine grained services it is critical to understand the management structure and hierarchy of those services to actually enable the degree of autonomy and flexibility required in these sorts of architectures.
Microservices is just another take on SOA and one that doesn't move the game forwards as it yet again focuses on technical aspects over the business architecture that is realised. Putting forwards as new something that would be recognisable to people working on CORBA in the 90s and certainly Web Services in 2001 is just poor quality advice. It neither learns from the past, educates the reader nor moves the game forwards, its just selling an old approach with a new name.
Microservices? What is that SOA 3.0? Nope its just an old school form of SOA without the learnings that came from doing that.