Best server architecture for 10M rows IoT stream and an advanced graphic front-end
Hi all,
I'm desperately trying to understand best practices for creating the platform described below. I can't find an answer for whether to use remote or internal DB, a Thing-centered data structure or traditional tables and whether to develop the front-end on mashups or on an external server with API to ThingWorx.
What we're trying to do is:
- IoT data stream is uploaded at a rate of 10 rows/sec from up to 20 devices simultaneously. we expect 10M rows a year. Would it require an external DB?
- This data is never displayed raw, but rather is used to calculate additional, much smaller tables, that are the source of our charts. I was told a non-relational DB is the best solution for this kind of data handling (Mongo, Google Firebase etc.) but I didn't manage to understand their compatibility with ThingWorx.
- We are developing consumer-grade front-end, customizing almost every component. Would't it be easier to develop and run it on an external server and just get the data from ThingWorx through its API, rather than trying to create it using Mashups and customized widgets?
And one last question I can't wrap my head around: If ThingWorx is a Thing-Centered system, wouldn't it 'degrade' its performance if we work with traditional table-based relational DB? Are we even utilizing any of ThingWorx advantages in the field of data management here, or just using it as a portal for accessing the external DB?
Iv'e already read Where Should I Store My Thingworx Data? and Remote or internal database? and many other community threads on these issue, but can't get the big picture.
Any help would be appreciated, thanks.
Gilad.

