can Financial Information eXchange connect to any broker - fix-protocol

Can FIX (Financial Information eXchange) be used to connect to any broker or can it only be used to connect to brokers that offer a FIX API?

FIX can only be used to connect to a broker that offers a FIX API. The majority of brokers should offer a FIX API, but some will have only a proprietary API.

can it only be used to connect to brokers that offer a FIX API
No you don't need a broker's API to connect to the broker. You can you use your own API if you want or any of the commercial APIs available. But before using an API you have to decide on a FIX spec which determines the message structures you will be exchanging, the version and of course the technical details of the server, ports etc. And every broker would be able to handle FIX messages, as FIX is the industry standard messaging, which all financial bodies use.

Related

ActiveMQ Artemis topology for enterprise-wide messaging in clustering mode

We are trying to build a solution on ActiveMQ Artemis which offers a high availability solution where multiple producers can put message and at the same time, a huge set of consumer can come and pick the message. In theory we should be able to deal with millions of message/hour.
I have checked through documentation and a few sites that does not talk about clustering, yes options are there like failover, etc.
Could someone please help me redirect to a good documentation which talk a more on this space and which topology is idea on which case.

Publish to Apache Kafka topic from Angular front end

I need to create a solution that receives events from web/desktop application that runs on kiosks. There are hundreds of kiosks spread across the country and each one generate time to time automatic events and events when something happens.
Despite this application is a locked desktop application it is built in Angular v8. I mean, it runs in a webview.
I was researching for scalable but reliable solutions and found Apache Kafka seems to be a great solution. I know there are clients for NodeJS but couldn't find any option for Angular. Angular runs on browser, for this reason, it must communicate to backend through HTTP/S.
In the end, I realized the best way to send events from Angular is to create a API that just gets message from a HTTP/S endpoint and publishes to Kafka topic. Or, is there any adapter for Kafka that exposes topics as REST?
I suppose this approach is way faster than store message in database. Is this statement correct?
Thanks in advance.
this approach is way faster than store message in database. Is this statement correct?
It can be slower. Kafka is asynchronous, so don't expect to get a response in the same time-period you could perform a database read/write. (Again, would require some API, and also, largely depends on the database used)
is there any adapter for Kafka that exposes topics as REST?
Yes, the Confluent REST Proxy is an Apache2 licensed product.
There is also a project divolte/divolte-collector for collecting click-data and other browser-driven events.
Otherwise, as you've discovered, create your own API in any language you are comfortable with, and have it use a Kafka producer client.

Integrating a MQTT broker inside server

I am learning about MQTT brokers, and I have got a question I cannot answer. Is it possible integrate a MQTT broker inside a server that acts as a client in a client/server architecture? - The reason I would need that is in case that this client retrieves data from an API.
I have tried to depict what I mean. If it is not possible, how would one approach it then, in case the data from the API is needed?
There no reason for the broker to be part of the client.
The client receives the data and then publishes it as a message to a separate broker where subscribers receive the message. There is no benefit to combing the two.
Building adapters like this is common practice (it's one of the reasons tools like Node-RED were created)

SalesForce's URL for Kafka provider

I'm trying to determine the URL for SalesForce as it relates to setting up a Kafka Provider. I'm using Bayeux client that needs a URL to SalesForce for connection:
new KafkaOptions(new Uri(""));
Thanks.
It seems you are using this Kafka library, which has nothing to do with Salesforce, but you give it a string of your Kafka broker addresses, as shown in the examples there.
Note: That library doesn't look actively maintained and Kafka is not an http protocol so putting http://server:9092 doesn't make sense...
You might want to checkout confluent-kafka-dotnet instead.

Can apache zookeeper be used as messages channel?

I am new to apache zookeeper. I have a distributed application. Each node need to send messages (also heavy) to each other. Does anybody suggest to use Zookeeper as a messages exchange channel, or is it used only for collaboration ?
I hope I dont miss anything from the whole picture!
You should consider posting your question to the Zookeeper user list for a more complete answer. Heavy message passing is not a highly recommended use of Zookeeper. Zookeeper is a coordination service, so it can help you manage where to send messages, or where specific destinations are located, but probably isn't the application for sending heavy messages between processes.