How to Make a Technical Selection?
There are so many tradeoffs, how to carry on?
Last week, an engineer asked me how to make a technical selection. And he provided a real-world example. Their organization wanted to implement an event-driven architecture, and there were three options available right now — MQTT, AMQP, and Kafka — but he didn’t know how to make a decision.
My answer, as always, was “it depends”.
“Everything in software architecture is a tradeoff”. — Mark Richards
Because of the tradeoffs, there will never be a standard answer, in other words, there will never be a silver bullet.
However, we always have to make a decision, what are the tradeoffs? At that moment, I turned back to him and asked.
- Do you understand your requirements completely?
- Do you know what these three techniques are exactly doing?
Take message queues as an example, I have written an article previously on what use cases to consider when choosing a message queue.