In a world of Microservices is Drupal 8 an undesirable Swiss Army Knife?

Submitted by dryer on Mon, 04/18/2016 - 17:57
Drupal 8 monolith

Drupal 8 has now been out for six months or so. Adoption looks to be faster than that of Drupal 7 was in it's time. But between January 2011 a lot of water has passed under the bridge. The world of web development is continually changing, but while Drupal 8 has done significant improvements it's still playing with the same hand as Drupal 7 did. Not only technology wise with old (but reliable) MySQL, PHP, jQuery, etc, but conceptually it's a somewhat of a relic.

Drupal 8 likes to present itself as a platform for developers to build on. There  may be a lot of talk about decoupling out in the wild, but behind the behind the lines they're still suggesting you should use Drupal 8 to build monolithic web services with a number of modules. This is similar to frameworks like LaravelSymfony or Zend. The difference that Drupal comes coupled with their own data storage layer, which make its more monolithic.

Now not all monoliths are bad, but the enterprise market Acquia is steering towards has been taken by storm by the microservices movements. Even Forrester are reporting of "Millennial Architects" that like to architect services from tiny bits and pieces. While analysts at large companies are behind the curve when it comes to web technology trends, but sure enough the use SaaS services and different APIs have exploded since early 2011.

Now the key would be to do one thing and to do it well. Drupal's views and content model may be flexible, but there are a number of tools that have similar capabilities (hooks, forms, etc.). And looking at Rules, it really does not compare in richness to enterprise heavyweight Business Process Management platforms. What comes to a unique REST API - it's hardly unique in a marked flooded with API gold diggers. As for the queue system that used to be a differentiator, people are now fluently using Rabbit MQ, Iron MQ and other message queues which are independent of any client applications.

One area Drupal could excel at is being the edge that provides users access to all the functionalities behind. But this would require superb usability, and Drupal 8 was a very developer focused release - in fact Drupal has received few fundamental changes to it's management interface in the fifteen years it's been around. Gradual improvements, but a WordPress Calypso kind of reboot is what Drupal needs to be able to challenge in UX. But that will induce more developer fatigue, which Drupal many developers are now experience with new OOP concepts being imposed on them by Drupal 8.

Drupal 8 is without a doubt a big improvement over Drupal 7 in technical terms. But the world has changed and Drupal's focus on being the platform that you can build everything on might be a message from the past for many people. Drupal will continue to be a good compromise for a number of things, but without clear focus it's kind of lost - but that's something many community lead Open Source projects suffer from.