Avatar of Alberto Mazaira

Alberto Mazaira

C*O at Devs on trees
C*O at Devs on trees·

I would take either Rails or Node for your problem.

Rails is a great framework: super complete in regards of testing frameworks, authentication libraries, great community support.... but I would say that the latest versions are a bit of a mess for newcomers, because of the way they manage assets: if the assets are served by the framework(Assets Pipeline) vs using Webpack .

If you are already familiar with React, Node is another great framework that will require a bit more effort on selecting the dependencies but for your use case seems a great candidate.

In regards of what you are commenting about learning during the process, both can be Dockerized pretty easy and you can spend some time digging on the lifecycle of putting it into production. Rails has a ridiculous easy way of deploying with Heroku avoiding any kind of work, but if you want to get your hands dirty you can deploy either of the frameworks on a Dockerized environment to any cloud provider you like. That part is really interesting too, and if you are interested on the Devops side, I would say that Node is a bit easier and more convenient(smaller image sizes and times to build) than Rails. All in all:

Rails pros: stable framework, great community support, great testing utilities. Rails cons: How they manage the assets lately(Assets Pipeline vs Webpack), dockerize the app.

Node pros: You are already familiar with Js, simple, easy to put in prod allowing to spend time in the Devops side. Node cons: Dependency management in Js environments is a pain in the ass

6 upvotes·32.5K views
C*O at Devs on trees·
Needs advice

Hi everybody,

We are building a prototype of our first Hardware system. It's a sensor that we expect to send data approx. every 5 secs. If we scale it to about 1k sensors, it would mean 173M records per month.

We will offer data-retention for 7 days or 1 month based on the plan, but if by any chance the project goes well I see that we can have a lot of pain if not choosing the persistence layer correctly from day 1. Which data storage would you use for that?

Cheers, Alberto.

6 upvotes·8.6K views
Replies (5)
Senior Software Developer at Okta·

We have seen really good performance with frequent writes in Redis (~10k writes per second). The retrievals are also fast. I see no reason why it should not be your first choice. I know Redis doesn't have the image of a persistence database but it is capable of persistence and high availability. Moreover, MongoDB or some other database can be used as a cold storage. Even switching to MongoDB or any other NoSQL database entirely wouldn't be a big problem since Redis is a simple key-value store.

8 upvotes·2.6K views

Hasura is a full platform working with Postgres and GraphQL. With Hasura you get everything and it is fast and cheap to scale up. With a good infrastructure like Kubernetes or AWS ECS you can run whatever you want.

MongoDB is nice but with millions of rows tends to lose its charm and with MongoDB or Redis you must to develop some backend with Hasura you get a backend ready to use.

5 upvotes·2.5K views
View all (5)