Basically, the paralisis comes from trying to achieve a perfect design using the optimal tools
Somehow I don't think you're a very good software engineer then. The whole point is that there is no such thing as "perfect" or "optimal" when it comes to large-scale system design in software. Engineering, by definition, means compromise - finding
an acceptable strategy out of a range of possible solutions. It doesn't matter what you do. As soon as you start using one technology, a better one will become available to you. Get over it and just make a choice. I'll guarantee you that it will be wrong 5 minutes after you made it, but them's the breaks.
