Hacker News new | ask | show | jobs
Show HN: Lightweight Microservices Architecture for the Internet of Things (github.com)
94 points by andreareginato 3782 days ago
16 comments

Not trying to troll but wouldn't it be easier to just use Elixir and Phoenix with OTP to run microservices for IoT?

IoT typically will have long lived connections and Erlang was built on computers much smaller than raspberry pi's.

Perhaps i'm not fully grasping the library though.

My thoughts are similar :) I work in IOT and we use Scala, Akka for the backend. Recently I am checking Elixir / OTP and think it would make a great candidate for IOT microservices with a lot of IO, routing and dispatching. OTP can suit very good for microservices.
Andrea's been working on this since before Elixir was 'a thing'.

Erlang would indeed be a fine language to implement this kind of thing with.

I agree with what you say. If starting right now Scala and Elixir would be the who choices I would be looking for. I started in Ruby and Node because of my personal knowledge with these languages and because they are widely used by open source communities.

Nonetheless, I would also say that the specific blocks taking care of the hardware communication can be easily replaced, adding the right technology to the right service.

The title does not do justice to the project. Lelylan seems to be to IoT what rails is to web app development. The title sound very underwhelming, my first thought was, well I can just use zeromq with service discovery. But Lelylan is much more than that it seems to provide an opinionated full stack framework for create IoT and related services.

The description from GitHub is much better, Lelylan is an iot cloud platform based on a lightweight microservices architecture.

Look here www.lelylan.com to get a much better idea about what it is.

Mongodb sounds like a disaster for IoT backend. Sorry for hatred but just can't see that scaling well.
It's IoT Scale!
I guess most people here will get your reference - piling on, you need even less framework if you just pipe your data to /dev/null.
THAT is an interesting setup for a nosql microservice.
Mongodb is used in a small section of the project and it's not used to store data. In that case I would use Cassandra, together with Spark.
Why is that bad? Mongodb is great for data ingestion.
MongoDB has a reputation for losing data. I'll try to find the reference. EDIT: http://www.mongodb-is-web-scale.com/ https://aphyr.com/posts/322-call-me-maybe-mongodb-stale-read...
In some IoT scenarios you could afford losing a little bit of data. For instance this component does it with MongoDB https://github.com/telefonicaid/fiware-orion
It kind of sucks especially for that since it forces you to do offline compaction which is hell on earth. I cant imagine they have fixed that, but it was a MAJOR ops headache because it would NEVER finish.

Never again mongo for anything with lots of writes.

So, its a distributed system architecture using SOA principles. Looks like there's some hand-waving about implementing a couple of obvious interfaces when applying this technical approach to IoT.

From what I gathered - this "framework" is nothing but a specification, and doesn't actually do anything for you.

Am I missing something?

Yes. That repository is just the architecture documentation. Check out the GitHub organization and you'll find that it's all implemented: https://github.com/lelylan
So it's Middleware.
In the Internet of Things, either devices will send data to one server that other Applications subscribe to or devices will send data directly to the Applications. This one of many examples of a server that devices can send data to. In contrast, Open Pipe Kit project (http://openpipekit.github.io) is an effort to empower devices to send data directly to Applications by utilizing the power of the Unix Pipe.
Does anyone know what theme/tool is being used for those docs? (http://dev.lelylan.com/)
As vicentereig said, structure is just a rails view; theme is bootstrap with some customization:

https://github.com/lelylan/dev/blob/master/app/assets/styles...

Andrea, you should point out some examples of this in use - as it is, it looks kind of dry.

I see there are a few things filed under 'tutorials', but I'd add it more prominently.

Thanks for the suggestion David. I'll bo my best to add some more examples. Do you have something specific in mind?
Can someone tell me what problem it solves that other architectures don't? All I see is a lot of buzzwords and very little technical details on why it is better...
Where's the code? I just see docs and images in the repo.
Here you can find the services list https://github.com/lelylan/lelylan#development. Any idea to avoid this problem? I just added a note section in the beginning of the documentation to mitigate it.
the mother of click bait titles
Pretty sure we do better than that on a regular basis.
Dumb question: I've looked through the demo and the tutorials and I'd like to know how does this compare to using something like OpenHab?
As far as I know of OpenHAB, I would say that lelylan main difference consists on the microservices architecture. What they actually do, is pretty similar.
Bizarre choice of tech for a project called "lightweight". I'll pass.
The choice of using lightweight comes out from the fact that each service in lelylan solve one specific problem, which make it easy to replace or extend existing and new functionalities. I'll think about a more proper word to express it.
Is this weave/brillo but not Google?
I'm wondering if using Apache Kafka and Hadoop Stack, would be a better approach for IoT.
I think so. I'm investigating on it.
looks good for noobs like me

    There are only two hard things in Computer Science: 
    cache invalidation and naming things.
      -- Phil Karlton
This looks like an extremely feature-complete and cool piece of software but the name needs to be revisited.
there's actually only two hard problems in computer science: cache invalidation, naming things, and off by one errors.
If there's anything the SAT tried to prepare us for...