5 ms·
From what I've seen, when people talk about serverless there's 2 camps. Functions makes life easier camp. Serverless development and deployments have nicer pr
by CBLT 8y ago
From what I've seen, when people talk about serverless there's 2 camps.
Functions makes life easier camp. Serverless development and deployments have nicer properties which make them easier to reason about and eliminate entire classes of errors.
Functions make edge computing possible camp. Serverless functions can be deployed in datacenters around the globe close to your users, offloading compute from your core and improving latency.
Now let's talk about DB semantics. You and many other people in the first camp probably want your business logic on strongly-consistent SQL transactions. That's good, it's the right semantics for the job. But it's incompatible with the edge model where the functions are decoupled from the central datastore.
So I think that you're asking for something the community isn't mature enough to provide yet. The momentum is towards unification where we need stratification (with respect to coupling).
- erik_seaberg 8y agoYou can't decouple validation from the datastore if you want to be certain that all the validation happens and none is ever bypassed or outdated. It bugs me how many systems have opt-in correctness.
- PaulRobinson 8y agoIf you start with the intention of asynchronous, non-transactional eventual consistency as your assumptive design model, you'll realise: 1. Most applications don't need 100% correctness. Few people are writing nuclear reactor control systems, or bank account management software 2. This model frees you to up to compute at the edge more. Is there a chance that you consider something valid that eventually wasn't? Yes. But in a single actor-per interaction system (e.g. an single actor mutating something, multiple people seeing effects, etc.), typical to the web, this is OK. People know about CAP theorem but hang onto the C with dear life. Let it go. It makes everything easier. Honest.
- dsiegel2275 8y agoYou make some good points, but I disagree that giving up consistency makes everything easier. There are trade-offs. In an eventually consistent system, in my experience, application code becomes much more complex to implement, test and debug.
- dfischer 8y agoFirestore has strong consistency transactions.