Kafka is an open source project that is inexpensive at scale, can execute ML models with millisecond latency, and has a multi-topic pub/sub model. There are several ways to set up Kafka. It is an open source project, so you can download the Kafka project and run Zookeeper and Kafka locally. Confluent, the parent company of Kafka, has a paid service that offers many additional features, such as dashboards and KSQL. They are available in Azure, AWS, and Google Cloud as a managed service and also, you can run Kafka as a dockerized container for development use.
One downside about using Kafka is that there is a lot of additional overhead to do to make it a good IoT project. Kafka, for example, is not secure by default. Security is handled through a series of plugins both on the device side through x.509 certificates and on the cloud side through Lightweight Directory Access Protocol (LDAP), Ranger, or Kerberos plugins. Deploying ML models is also not trivial. Any ML...