Service Mesh vs. Kafka
I have been following two separated but interdependent technologies over the last few months, which although they are a hot topic, not many people talk about when to use one or the other; I’m talking about Kafka and Istio.
Both technologies are great and you can find lots of talks showing how introducing these technologies into your organization can transform your business, and they are right!. Now image you are the proud owner of a huge monolith application which no one understands anymore and no one wants to touch. The business realizes that this is a problem and decides to do something. The CTO comes to you and tell you: “go on, build me some microservices”. Where do I start? How do I break my monolith app? how small a microservice has to be? and more importantly? how do they communicate with each other ? asynchronously using Kafka or direct sync calls?
For me, this is the hardest puzzle to solve, but it is not a technical problem but more a business problem: it depends on your business. First of all, your business processes needs to be mature enough to embrace containers and data streaming platforms. If you are running reports on PL/SQL, have no auto provisioning, need to wait for compliance 3 months to approve a change; then forget about it. Start with the business, define a new business strategy: small teams built around business capabilities, agile practices, automation and more important use Domain Driven Design.
But let’s assume the business is ready, how do I build my first container based micro service?. At a…