Hey, guys.  It's kinda quiet here so I thought I'd ask for some thoughts...

I recently got put on a relatively small project that's nicely utilizing a 
microservices architecture.  There are about 8-10 services and they're using 
Kafka.  The whole thing is about 10k lines of Kotlin, and they do use Camel but 
without any Spring whatsoever ("old school" Camel).  Each service is 
containerized and deployed to the same node.

This is the first time I've been exposed to Kotlin and (besides thinking Kotlin 
is the ugliest thing I've seen since Perl and that it's wicked over-hyped in 
terms of its supposed greatness over Java) I can't help but think that I could 
turn this entire pipeline into a single, Java-based, Spring Boot + Camel app in 
about a third of the code.  

I could effectively (and efficiently) recreate the pipeline with some simple 
Camel routes and processor/service/bean calls, and get rid of the message bus 
altogether.  The Kotlin classes contain some simple logic branching based on 
the message type, and that could all be pulled out into the Camel routes as 
well. 

Has anyone done anything like this, refactored a multi-process MSA pipeline 
into a smaller, single Camel app?  What are the pros and cons?

The only "con" I can see is that the MSA approach can conceivably be scaled up 
depending on the data rates (i.e. use OpenShift to fire up more services as 
needed) whereas Camel can't (I think?) do that?

Just curious...

Happy Monday.

Reply via email to