Sunday, May 15, 2011
Book Review for "Camel in Action"
Book review for 'Camel in Action'
The Manning 'In Action' books are usually good ones-- readable, thorough, and suitable for use as both an introduction and a reference. This book is no exception.
The topic is Camel, Apache's open source framework for implementing Enterprise Integration Patterns. If you're wondering what that means, you might consider Camel an 'ESB Lite'. It's not a true ESB, I think mostly because it doesn't have it's own hosting runtime, but beyond that it does many of the things an ESB does.
Camel can be used to route messages. So let's say you want to listen on a JMS queue and use the results to call a web service. No problem for Camel, the book tells you how. Likewise, if you want to do some message transformation-- maybe read in a file, split it into lines, enhance each line with some stuff you get from a database-- no problem. The book does a great job of demonstration through simple examples, which I found to run well and easily. Warning: if you're not a Maven user yet (I think Maven is beginning to definitively prevail in the Ant/Maven battle), you'll want to brush up a little as it's used exclusively throughout the example suite.
The book is exhaustive in it's coverage of Camel-related topics. Sometimes tech books are written in such a way that development-centric topics are given great coverage, while operational issues are not. This is not the case here-- it's obvious the authors of this book have spent some time deploying, running, and monitoring applications as well as writing them.
The source code that comes with the book is well organized, clean, and relevant for the chapter material it augments. Most important, it runs out of the box.
Camel basics (routes, Java and Spring configuration, the Enterprise Integration patterns) are all covered in more-than-adequate fashion. These are basic but necessary topics any good Camel source should provide. Where this book excels is in the ancillary material: management, monitoring, threading, transactions, testing, deployment in popular containers, etc. Very thorough, it's why this book is 550 text-packed pages long.
If I had one complaint about the book, it would be that the chapter ordering wasn't quite to my liking. The reader is given plenty of example material (including some advanced topics like transactions and concurrency) long before the basics of setting up a user-concocted "Hello World" project are presented. This is a minor nit, though, and it does not detract from the overall excellence of the book.
Bottom line: this is a must-have resource for any user of Apache Camel. It can take you from ground-level to production use, and will no doubt serve as a valuable resource for as long as you use Camel.
The book can be found here.