Edit: "The FedNow Service will initially leverage IBM® MQ MQi Client for the payment message flows." according to https://www.frbservices.org/financial-services/fednow/blog/a...
Hitching a horse to a different technology platform that has only been around for a few years to complete a project that should last for many more decades would be an architectural choice that would only lead to high costs and high risk of major changes in the future and puts the whole system at risk.
Half the banking sector runs on IBM and has been running on IBM for decades. They know the domain well and have legitimate credibility for being reliable. It's not comparable to some of their other markets.
As far as message queues go for something like the federal reserve, IBM MQ is really the only option that wouldn't raise a lot of eyebrows in the industry. The Fed is not the kind of institution that I think people would be lenient on for being open and innovative with their software solutions, banks really need to know that this thing is going to work and they all run IBM MQ themselves already. Not to mention the integration possibilities with Db2 and IMS, which are both huge in finance.
My only complaint is that it is very expensive. That's the story with most of the kind of hardcore technical products IBM sells that are likely to wind up near mainframes. I'd imagine the Fed gets a sizeable discount though.
On the one hand, I guess. On the other hand, I have a pile of the WebSphere product stack in my life. The app server is ten times the cost of MQ. WPS is another ten times the cost of the app server. It looks cheap when you're buying the really expensive stuff!
Also if you're using MQ for things like guaranteed delivery and making use of clustering and security controls I suspect it's cheaper to pony up for the IBM software than it is to spend time messing about in the thickets of the free alternatives.
FIX is, at its core, a message queue, and it’s a free financial industry standard. And, for any serious use in which the message queueing ability is important, FIX is wildly unfit for purpose.
Seriously, a deliver-once [0] message queue between two parties is very simple, and it’s truly remarkable how severely it can be screwed up. I’ve never used IBM’s solution, but I assume it actually works.
[0] Yes, deliver-once is impossible. But arranging for a failure to result in all messages up to a point being delivered, subsequent messages not being delivered, and the fact that a failure occurred being obvious to both parties is straightforward.