So what kind of apps and scenarios can be built using serverless technologies?
Anything where there is need to run some code or logic in response to an event. You will notice that this is a very broad definition and covers a vast array of scenarios. So, let me provide some examples.
1.Real-time stream processing:
IoT devices sending data that needs to be analyzed, enriched and archived somewhere. This is best done using serverless functions which can be spun up on demand, because you don’t know when the data is going to come in and how much data is going to come in. So, you don’t necessarily want to build your own infrastructure for peak capacity.
2. Time Based Processing
Almost every organization needs to run some regular tasks like de-duplication of database entries at the end of every day or collecting logs at the end of every week. Such tasks that need to be run only at specific times and only for a few seconds each time, don’t call for dedicated infrastructure. They are best left to serverless solutions.
3. Backend ( Mobile/ IOT / Web)
Building backends for your mobile, IoT or even web apps is also a popular use-case for serverless architectures: In this diagram you see a mobile app sending an image to a function which stores it in Azure Storage. This action triggers another function which creates multiples thumbnails out of the original image. Being able to perform these actions in a serverless manner, takes away the burden of the mobile developer from worrying about the backend.
4. Real Time Bot Messaging
Bots are all the new rage: Automated response systems receiving a customer request is an event. Building intelligent bots for such scenarios using serverless technology is again a great example where the focus needs to be on logic instead of infrastructure.