Hacker News new | ask | show | jobs
by nathan-muir 4248 days ago
Congrats to the Meteor team!

We've built an enterprise/b2b app on meteor, and even through all of the hard yards, it's been a success & the right choice for us.

When I first heard about meteor, back at v0.5 or v0.6 - I watched the video from their home page, and thought it was full of buzzword bullshit. I didn't have a clue what it did.

I then ended up reading about how their latency-compensation API system worked [Meteor Methods]; And instantly knew that it was for me.

Having an API that simulates itself on the client, while simultaneously performing the same work on the server, is freaking awesome. (And then rolls back automatically if they don't agree).

If you are building a real-time, collaborative tool. Meteor is the framework.

That being said, there are a few questions about integration & scalability.

Opportunities to use Meteor:

* If you can make something small, eg. an internal tool [Free mobile app with cordova!]

* If it matches a certain feature of your app - and you can segment it based on URL (eg, it's a separate app)

* You're a sadist, and you're going to port your whole app to meteor...

* You're writing an MVP and you're going to scrap it later

* You're product has realtime/ collaborative elements that are a SELLING feature [not just for your personal enjoyment].

Scalability:

* Client are always connected via websocket. Great for realtime data (no polling), crap for a website.

* As meteor instances are single threads, you can run multiple instances on the one server. Design you code for this (eg, don't store state in regular JS variables on the server - all has to be in the database). Load balance between them.

* Once the "client" has booted up. You can then connect to as many other DDP servers [backed by their own mongo instance, or the same mongo instance] as you like. This gives you the ability to segment your application based on your core feature. EG; if you're a monitoring app, shard your data by client, if you're a document app, shard by project. Have a central listing which tells them which server to connect to.

* Perform heavy lifting somewhere else. Plenty of "web workers" out there, or roll your own using Celery & Meteor-Celery package [shameless plug].

All in all. Meteor is great at what it does; and what it does, is going to be the next generation of web apps.

1 comments

> * You're product has realtime/ collaborative elements that are a SELLING feature [not just for your personal enjoyment].

What opportunities exist in the enterprise market that specifically benefits from this feature?

I'm working on Google's Governance, Risk and Compliance management system.[1] Porting it to Meteor would accomplish several goals:

* clean and much simpler code base

* automatically (reactively) updated status reports on compliance across various systems depending on numerous components throughout Google in continuous flux

* ease of onboarding new developers in the team given the simplicity and ease of learning of Meteor

[1]: https://github.com/reciprocity/ggrc-core

I worked with Meteor.js on an enterprise app a year ago but it seems to be more mature now. I think this is a great time to begin porting it.
Sky is the limit here.

Low latency (real-time) can be an important part of effective and engaging communication.

Sure, it's not for everything; I wouldn't want my email communicating word by word to my recipients as I typed.

However, enterprises usually involve a lot of communication - with team members, stakeholders, and clients. - there are many opportunities to spice things up and make them more engaging & effective.

There's also the opportunity to instantly communicate non-prose - manipulating datasets, images, graphs and charts in real time.

In what specific industries are these needed? I'm curious as to how I can build an enterprise app in meteor.js.
You want a list of industries, that involve communication with team members, and customers?

I think you need to take your curiosity to google (or the real world), and do your own research.

okay I just wanted to get your opinion.