8 ms·
Don't solve the solved problems
- niggler 13y ago"MongoDB is how we store things" Is mongodb really a good solution for storing things? IIRC one concern about coinbase (YC) is that they used mongodb for storing financial information.
- imslavko 13y agoMongoDB is web-scale Edit: http://www.youtube.com/watch?v=b2F-DItXtZs http://www.youtube.com/watch?v=b2F-DItXtZs
- tonyx 13y agoWe like to embrace different technologies and use each for its strength. MongoDB is excellent for a whole class of use cases and we like it a lot, but we also use other persistence solutions as well. Check out Polyglot persistence post by Martin Fowler, it's an awesome read. http://martinfowler.com/bliki/PolyglotPersistence.html http://martinfowler.com/bliki/PolyglotPersistence.html
- pbiggar 13y agoStripe uses mongodb, if its good enough for them, its probably fine for financial info. As I recall, there is some aspect of mongodb that lets it scale up without maintainance, making it good for a service that just can't go down.
- azov 13y agoThat's a hell lot of things to change, break, go down, lose your data, start charging ridiculous prices, be discontinued, etc... I'm all for SaaS and not re-inventing wheels, but I'd be nervous if I had to rely on so many external dependencies.
- pbiggar 13y agoPresumably when any of those things happen, that's when you bring it in-house.
- Hansi 13y agoI don't think that's a viable solution. Some of these are quite complicated and replicating them in-house is not something you just up and do in a short time. That tactic might expose you to significant downtime.
- pbiggar 13y agoI agree they take a long time to replicate. Which is why it doesn't make any sense to me to suggest that you should build them in house before you get your product out to the world.
- jiggy2011 13y agoIt depends, sometimes you really do need the big complicated thing and you don't have time/money to develop it in house. Sometimes though you can make do with something significantly simpler if you restate the problem slightly and move the pieces around. You might be able to do the core of the job with a cron job and some command line tools rather than the fancy SaaS platform with graphs and everything. Building on top of the fancy SaaS APIs and then trying to scale down when you want to move away is a lot more difficult than starting with the simpler approach and then scaling up when you really need that extra functionality. Believe me, I've done it in both directions.
- lazyjones 13y agoYou should bring it in-house as soon as it becomes critical for your business. Only startups that aren't profitable yet should bet their skin on so many hosted services as long as they allow them to grow faster (that's not a given, sometimes SaaS/PaaS are complicated to use and unstable). When you are raking in profits, you'd better use some of them to secure your business and make it independent of such risks. Which is the point the blog post seems to be trying to make.
- kevinastone 13y agoI think the vendor lock-in (cough heroku) is the bigger risk rather than reliability.
- benjah 13y agoI've heard this a lot lately. Heroku uses super standard stuff (nginx,varnish,postgres,etc). I could move my stuff off Heroku in a matter of days. I used to do a lot of sysadmin work. I go with them because I can't devote time to sysadmin work anymore. Same reason I don't run my own mail servers anymore.
- kevinastone 13y agoI'd argue mail servers (as SMTP endpoints) are more interchangeable than Heroku. They have a completely proprietary configuration and deployment process. I can understand that competent sysadmins can recreate heroku's underlying hosting, but there's still a decent switching cost (especially if your whole team is accustomed to the heroku way). I've consulted with several companies that have 5-figure a month hosting on heroku that they can't migrate after all their investment. If SendGrid changes my plan (or somehow degrades), it's a simple config change to send my email through another provider. A more apt comparison would be if your mail provider used a custom ReST endpoint instead of SMTP (say, as MailChimp does).
- benjah 13y agoI agree. If you don't have any good sysadmin in your team, you are likely to be stuck at heroku. But then again, if you didn't have a sysadmin, you wouldn't have built it yourself. Starting at heroku or similar clone, still makes sense if your new thing may not make it past the first year. I guess it also depends what the business model is.
- devindotcom 13y agoI was hoping for a slightly higher-level look at what problems not to solve. It seems that Collections.me solves a solved problem - convenient online storage. It iterates a bit on it, but you seem to be building something that is largely a pile of already-solved problems, both in its implementation and use cases. Just my opinion, of course, and that is how many services advance, but I thought I'd voice it in light of the purpose of your post.
- Too 13y agoTry http://www.codinghorror.com/blog/2008/10/programming-is-hard-lets-go-shopping.html http://www.codinghorror.com/blog/2008/10/programming-is-hard... The OP doesn't really talk about "solved problems", it talks about the companies core competencies.
- kevinastone 13y agoHow do you get any of the benefits of redis over a Wan link? So confused by a hosted redis solution...
- lennydizzy 13y agoI have the same question...
- pbiggar 13y agoLatency to another server in the same AWS availability zone is 1ms.
- kevinastone 13y agoSo it's really just a deployment solution for EC2?
- pbiggar 13y agoI think other providers have similar speeds, and that the redis and mongo providers provision on lots of provider's machines. But I'm not sure how far that goes.
- benjah 13y agoI second most of the listed services. Just because you can code or host your own systems, it doesn't mean you should. Any time spent on extraneous internal devices is a disservice to your core and customers. Lastly, shameless plug but I think we have a better accounting solution in http://cheqbook.com http://cheqbook.com
- jaddison 13y agoIf I can ask, what's the general monthly run rate of those services you use combined?
- redemade 13y agomost of these services wouldn't be around if they had taken that advice ;)
- jayfuerstenberg 13y agoI just so happen to be working on a product that significantly overlaps with Collections. I've spent almost a year on it and don't think I'm going to take their advice if it's all the same to them.
- pbiggar 13y agoOP: thanks for mentioning us (https://circleci.com https://circleci.com)! That's a lot more 3rd party services than most use - do you find major differences in reliability?
- Qantourisc 13y agoHow about the unimpleted problems ? Or does that fall under unsolved ?
- huhtenberg 13y agoThe Bolt-On Engineering for Dummies. Granted, some people find it interesting.
- InclinedPlane 13y agoSigh. "Don't reinvent the wheel." Classic advice. And it has some merit. But it's a broken idea. Google? Not the first search company. The iPod? Not the first mp3 player. The iPhone? Not the first smartphone. Hacker news? Not the first tech oriented community site. "Don't reinvent the wheel... unless you think you can do much better." Also, if you're merely iteratively improving the wheel, do so whenever you like. We don't drive around on hand-carved roughly circular hunks of wood any longer, and that's good.
- alexjeffrey 13y agoI read this post as less "don't reinvent the wheel", more "if you're building a car, don't build your own wheel when you could buy one from a wheel manufacturer" - maybe if you did it yourself you could make improvements, but it's far more likely that a company where the problem you're trying to solve is their bread and butter will provide a better solution.
- InclinedPlane 13y agoI think the core problem is that the question "build or buy?" is formulated in a way such that it rests along the incorrect axis. It's like giving people advice on whether they should go outside or not, whether they should fall in love or not, whether they should start a company or not, etc. The proper answer is: "it depends." But that's unsatisfying because it's too complex. But in reality you can't eliminate that complexity, it's an irreducible complexity. Just as there isn't one simple, objective system which you can consult to reliably get an answer to the question "should you go outside or stay indoors?" there isn't one for whether you should use something off the shelf or build something yourself. Look at, for example, SpaceX, who built the first generation of engines for their Falcon 9 rockets using turbopumps (one of the most complex components of a high performance rocket) provided by 3rd party companies. However, in the subsequent generation of engines (the Merlin-1D) SpaceX has designed and built the turbopumps themselves, and this is responsible for significant improvements in the engine. Ultimately I think it's more important to take a step back and make a conscious effort to avoid making big decisions based on instinct or inertia and begin to cultivate a set of processes, elements of corporate culture, and habits which encourage thoughtful analysis and introspection about these choices. People should be more thorough about evaluating the advantages and disadvantages of doing things different ways and be mindful of when it doesn't seem to make much difference. And also mindful of the opportunity to change your mind in the future. Sometimes it can be worthwhile to rebuild a tool that already exists in the industry just for the purposes of acquiring the experience and knowledge of having done so. And sometimes even when taking something in house might easily save millions of dollars a year it still might not be worth it due to other opportunity costs. It's a complicated question, and it's always going to be a complicated question. Instead of pretending it's an easy question people should be working on acquiring the skills to make sure they can answer the question well with some degree of reliability.
- banachtarski 13y agoThis speaks better to how well heroku is able to sell add-ons.
- jibiabrahm 13y agoSo... after 15+ services, what do YOU do?