The concept of event-driven programming is not new. But AWS Lambda, a service launched by Amazon Web Services, takes it to the next level allowing developers to focus on the coding without having to worry about the mundane tasks of provisioning, scaling and administering the underlying infrastructure which, in AWS parlance, is the “undifferentiated heavy lifting”.
What is Lambda?
AWS launched Lambda in keeping with the tradition of listening to customers. The service is designed to make it easy for developers to run code in the cloud and to connect services easily in the AWS cloud. Essentially a compute service, Lambda allows developers to build applications that will respond to events and customer requests. It helps in building applications that will provision and scale automatically, and build new back-end services in response to events in other AWS services or events generated by user applications.
Why Use Lambda?
The automated deploying and scaling in Lambda will reduce development time and infrastructure costs as only an event will trigger a function, as opposed to having a complete stack running for something that will run infrequently. At the same time, there is a trade-off between the flexibility in EC2 and the automation in Lambda. While EC2 offers myriad options in instance size and operating system and allows fine-grained control over computing resources, Lambda will automatically provision capacity and operating system according to the memory allocated to the function.
The most far-reaching impact of Lambda is that the event-driven nature of the service will force developers to think differently in terms of decomposing a business problem into building microservices. At the same time, the billing parameter which takes into account the time required to complete a function and the memory allocated to achieve it will unfold a whole new way of thinking.