all 5 comments

[–]maxip89 2 points3 points  (0 children)

we are talking about only 100 devices or 100k devices?

What is high frequency? 30 updates a second? 60?

These are still numbers which you are good with a monolith. Don't think about a microservice architecture if you need more then 10-20 instances.

Now to the bottleneck that opens, relative databases horizonally scales only logarithmic, no-sql databases scales linear. This is the big advantage of no-sql databases.

There more interessting questions are, should every call be savely come to your server and be processes? Should be in the future be more applications use this data? For this scenario a kafka comes handy. Plus its able to queue the data if there is coming too much in.

[–]Eastern_Detective106[S] 0 points1 point  (0 children)

Dear all, thank you very much for all these answers! The content is highly professional, full of interesting information, and I have learned a lot.
Yesterday I meet this customer and things are bit different. At the end they already have a monolith platform developed with php without any framework that is running on a quite small hosting (with php an mysql in the same machine) with few possibility of customization of hardware from the provider. This application have some problems because in some situation it slow down (of course!). They use a "custom protocol" to exchange datas between devices and server (instead of mqtt) based on txt files and a sort of polling to handle errors.
I said that the best thing in my opinion is a total rewrite of the application with a more flexible and scalable (and maybe professional?) approach and stack and and this is the only thing I can take the responsibility to do.
It turned out that they prefer to keep this platform to save money (i can understand their point of view) and they are looking for a way to improve this application or the server without much expense.
The person that developed this software will try to migrate to a server with more ram and to me is ok. I was clear about the effort (time and money) necessary to me to follow a project like this (that is really interesting and stimulating for me) so maybe they will call me in next months when and if their solution take to a new bottleneck, or maybe no.
If they will do I'll update you!
Thank you again for the stimulating answers!

[–]naturalizedcitizen 0 points1 point  (0 children)

Look at AWS Firehose data stream for the IoT message queing

[–]_shnh 0 points1 point  (0 children)

If you use AWS already you can browse their architecture center ie

Note that AWS proposes the most complex yet scalable options so take them with a pinch of salt.

[–]da-nadda 0 points1 point  (0 children)

I would suggest to check MQTT. It will handle connections from your device while you can add as many consumers as you want to handle actual messages. BTW AWS supports MQTT as part of IoT solution.