In the tech world, new technologies hardly ever function independently from other existing technologies. Developers and users both get the maximum utility out of a technology when it is combined with other web technologies and services. Blockchains are no exception in this regard as we’ve already seen the power of blockchains increase tremendously when they are paired with other web services such as with Microsoft Azure and Stratis. Blockchain Technology and Serverless Processing are also two technologies that are quite different from each other but can be combined to create applications that neither can handle independently. We explore these technologies in more depth and see what the future holds for event-driven architectures.
What is Serverless Processing?
Serverless Processing or Serverless Architecture refers to a new technique of deploying web services which allow a developer to relegate the task of hosting web services to a third party such as AWS Lambda. This is very useful for a developer as it eliminates the need for server software and hardware management by the developer so that they can focus on developing the fundamental code of their app. Serverless Processing is especially useful for developers who want their applications to be able to scale efficiently. Each trigger for a computation request triggers the serverless processing service to scale the application by running the code in parallel. Since every trigger is processed individually, the application is scaled precisely with the size of the workload. With Serverless Processing, developers only have to pay for the amount of computation that their applications take and don’t have to pay anything when their code isn’t running.
For instance, AWS Lambda is a leading serverless processing service that runs code in response to events and automatically manages the underlying compute resources for the developer. It can be used to extend other web hosting services with custom logic or to create other back-end services that operate at AWS scale, performance, and security. A typical use case for a data processing application with AWS Lambda would be to execute code in response to triggers such as changes in data, shifts in system state, or actions by users. In the case of real-time file or stream processing, serverless could be triggered immediately after the file upload to create thumbnails for images, transcode videos, index files, and filter data in real-time.
Blockchain Technology and Serverless Technology
Blockchain technology and serverless processing technology have a lot of differences. For instance, blockchain technology is stateful while serverless compute is stateless. Blockchains are persistent while serverless computes are short lived. While blockchains eliminate the need for trust between parties, serverless computes rely on a high degree of trust. Trustlessness makes blockchains difficult to scale while serverless asynchronous computes are highly scalable. The key to combining these technologies then is made mainly of the last point – trust.
Blockchains have a component of computation built into their architecture in the form of consensus mechanisms that assure that transactions are safely carried out. Miners provide the computing power to add blocks to the blockchain by validating transactions. Smart contracts are another form of computations that Generation 2 blockchains such as Ethereum support. With smart contracts, the code is executed in a decentralized fashion by the Ethereum Virtual Machine (EVM). It’s clear now that blockchains and serverless processing are trying to achieve quite different things. However, they can be used together to a public and independently verifiable way to maintain transactional states for the stateless serverless processing. Such a combination would be extremely useful for hybrid blockchains where the level of trust between participants is already high, and a publicly verifiable blockchain could share that trust with outsiders as well. As more and more developers decide to apt for event-driven architectures to save costs and increase scalability, there will be a greater need for independently verifiable ways to maintain transactional states which blockchains can provide. Therefore, combining the two technologies can provide developers with the best components of both technologies to built more resistant apps at a lower cost.