The word ‘serverless’ is confusing here. It doesn’t mean there are no servers, just that developers don’t need to worry about provisioning them in order to run their code as that’s all done automatically. It’s an abstraction, and nothing to do with being decentralised. Interesting stuff nonetheless.
The last couple of lines really jumped out at me “Because really, at the end of the day, as a developer I don’t care about Lambda, right? I mean, I have to care right now because it’s the layer in which I work, but if I can move one layer up where I’m just writing business logic and the code gets split up appropriately, that’s real magic.”
“I believe there is also a missing piece of the market for a Redis-style serverless offering, something that maybe even speaks Redis commands but under the hood is automatically distributed and scalable.”
I agree… thankfully, we all know something which can fill that hole!
FaaS is great at removing the management of the infrastructure. It feels like docker containers may be better in this integrated environment than stand alone.
However, most systems aren’t stateless and need storage and databases, which results in more traditional infrastructure being needed to host this need. SAFENetwork potentially fulfils this need and it seems very important for SAFENetwork to exist as a plugin replacement for this. It is one reason why I would like to add SAFENetwork to Spring Data on Java when we have Java libs.
Moreover, the work FaaS / serverless is doing plays straight into the long game that Maidsafe are working towards; distributed general purpose compute, to replace the likes of Amazon Lambda.
I have said being that pitching the platform could be a good win such as IaaS (infrastructure as a service). The idea that your app could just run somewhere on the network and store it’s data to your account is very powerful… you literally just feed in the app + SAFECoin and forget about the rest in this scenario.
IMO, people mostly don’t see this vision yet. They struggle to get beyond distributed file storage, but maidsafe are working towards giving us so much more. There is a long game unfolding here and we have the great vision of Maidsafe to thank. The world will catch up in the end!
I haven’t given the implementation deep thought, but Spring has a standard interface for interacting with data stores. Implementing the interface would then provide a plug in replacement for existing/future applications which integrate with Spring Data.
Given there is are Redis, MongoDB and (generic) key store implementations already, I suspect it should be relatively straightforward. Considering the existing modules are open source, there should be plenty of opportunity to crib useful bits too.
Being able to host a serverless Spring Boot app with a data store that exist on SAFENetwork would be truly serverless in this context. If done well, it could perform sufficiently and scale out massively too (as the network grows).
@Traktion Hmm interesting… Correct me if I am wrong but before we can integrate with Spring Data, there should first be a data store functionality or something of that sort built and tested first on the SAFE Network. And once we have that up and running we need to test it out with JAVA API’s(once they are released).
Post which I am thinking something like a Spring Boot App to see if that works. And then transition to Spring Data.
What would you think of this kind of step by step process ? And would it be absolutely necessary to add SAFE Network to Spring Data or could we use JPA alone and write a separate series of JARS that do this (interface with SAFE Network) ?
I would probably look at the existing spring data modules and see how they have done it. I suspect you are right that there is a storage client/driver involves and it would likely work at the JPA layer directly too.
The goal of having a spring data module would primarily be to make it super easy to integrate with Spring Boot apps. Having JPA support as part of that would be even better (perhaps preferable).
Edit: To add, I was assuming we would have a simple key/value store built into the java libs, which could be a starting point.