4 ms·
I just don't believe in the 1 backend to rule them all approach. Services like Stripe, Algolia, Datadog, Pusher, Mapbox, Imgix etc all make a lot of sense. It's
by tschellenbach 10y ago
I just don't believe in the 1 backend to rule them all approach. Services like Stripe, Algolia, Datadog, Pusher, Mapbox, Imgix etc all make a lot of sense. It's easy to plug them in to your existing backend and extend your app's functionality. Using someone else's backend for your app is a terrible decision though, the lock-in is just too large.
For this to succeed they'll need to add a lower level interface to the mix. Something like AWS' Lambda.
Question for the founders, will there be an extension platform, something like Parse cloud or the Heroku app store?
- mparis 10y agoHey that is great feedback! To address your point about the lower level interface, as part of today's launch we released our Logic features that lets you do exactly this. The new features allow you to add compositions of custom microservices to any mutations in your Scaphold API. For example, assume you were building Slack and you were setting up the createUser onboarding flow. A new user might be invited to Slack and to join a specific team. In a real app you would want to first validate the email, then make sure the user has permission to join the team, then persist the object to the database, then using the generated ID create an M-M association with the team and maybe even asynchronously send push notifications to all the other users in the team. Flows like this are why we built Logic. You can host your business logic anywhere and Scaphold essentially acts as a runtime for your microservices. This new feature is particularly powerful so I'd be happy to discuss it more in depth if you'd like.
- baby_wipe 10y agoBut I've found this is where you start to want a full-blown web framework, at least in my experience. Logic sounds very close to what Cloud Code is on Parse Server, is that right?
- mparis 10y agoIt's similar but we think it improves upon cloud code in a couple of ways. We designed logic after techniques that we use internally to create robust, yet maintainable GraphQL resolvers. Mainly that means we structure each resolver as a composition of functions. This means that the functions in the composition associated with the mutation are able to pass information down the chain giving you a lot of flexibility in how you implement features with microservices. Another distinction from cloud code is that you can use virtually any stack. You can host logic using a full fledged web framework like Rails or you can use new serverless services like lambda. This also gives a lot of flexibility and lets you reuse existing infrastructure if you have it. The comparison is a fair one but we still have a few features in store that will keep building on the functionality and hopefully make the distinction more apparent :)
- AznHisoka 10y ago"Services like Stripe, Algolia, Datadog, Pusher, Mapbox, Imgix etc all make a lot of sense" Yep, and that's because they solve a really really challenging problem you can almost never solve yourself, whether it's payment processing or search. Creating a simple barebones back-end may be tedious (though I'll argue it's trivial), but it will never be an unsolvable problem for many. Maybe for pet projects, but never for any critical production applications.
- mparis 10y agoThanks for the comment! It is true that companies can often build their own backends but it is often extremely time consuming and expensive. It takes time to develop these systems and build them to scale and often they run into a problem where early assumptions change while the underlying system is hesitant to. One of the core value props of a platform like ours is the speed at which you can iterate and develop something while also being given the tools to pivot when you need to. We are focused on building features that allow you to extend the platform to make it achieve what you need so that you can spend more resources developing the value that is important to your customers instead of the pipes underneath. Of course our solution cannot work for everyone but the companies that we have worked with thus far have told us that increased their application throughput by 8x compared to when they built backend themselves with frameworks like rails/django/node.
- schickling 10y agoThat's a really good point and the foundation for what we're building with Graphcool (https://www.graph.cool https://www.graph.cool). It's basically combining a GraphQL BaaS with AWS Lambda (or similar services). We take away the pain of configuring and maintaining your database + GraphQL schema so you can focus on implementing your business logic. Our mission is to make software development like playing with Lego. You're combining existing services like Stripe, Algolia (...) to quickly build your own applications. GraphQL is the common denominator between all these components and provides an incredible developer experience. On a more general note what distinguishes Graphcool from other services: We're optimizing for the best possible developer experience (DX) while maximizing the degrees of freedom what's possible to build with Graphcool.