Redirecting AWS Lambda invocations to local for Debugging & Hot-Reloading without disrupting the flow

Develop and debug serverless functions using your local IDE while still using the full range of AWS services and features

barış kaya
5 min readDec 14, 2022

AWS Lambda can offer several benefits, including improved scalability, flexibility, and cost-efficiency. Serverless architectures abstract away many underlying infrastructure details and can make it easier for developers to focus on building and deploying their applications rather than worrying about managing servers.

Although AWS Lambda and serverless ecosystem comes with many benefits, developing Lambdas can be challenging for various reasons. One of the main challenges is that serverless architectures rely on event-driven computing, which can be difficult to understand and implement. This can make it hard to develop and debug applications and understand how they will behave in production. Additionally, since serverless architectures often involve multiple different services and vendors, it can take time to manage and troubleshoot issues that arise.

One of the main struggles of local serverless development is the need for more support for all AWS services and features. This can make it difficult to test and debug applications that use services not supported by the local development tools. Additionally, the local environment may not be a replica of the AWS cloud, so there may be behavioral differences between the local and cloud environments. Making it challenging to ensure that an application will work as expected when deployed to the cloud. Another challenge is the complexity of setting up and configuring the local development environment, which can be time-consuming and require specialized knowledge. Finally, local development can be slower and less scalable than cloud-based development, hindering the development process and making it more challenging to work with large or complex applications.

Introducing Merloc

MerLoc is an open-source tool that allows developers to redirect serverless invocations from the AWS cloud to a local environment. It enables developers to develop and debug their serverless functions locally without disrupting the application flow in the AWS cloud. Using MerLoc, developers can test their functions against local resources, such as Amazon DynamoDB tables, and debug them using their local IDE. This can speed up the development process and make testing and debugging serverless functions easier. Additionally, using MerLoc can help ensure that the application behaves consistently across the local and cloud environments, reducing the risk of differences in the behavior causing issues when deployed to the cloud.

MerLoc allows redirection of serverless invocations from the AWS cloud to a local environment and uses the AWS Serverless Application Model (SAM) and SST under the hood for running functions locally. Allowing developers to develop and debug their serverless functions using their local IDE while still using the full range of AWS services and features. MerLoc makes it easy to change where your Lambda functions run with a simple setting that lets you switch between the local and cloud environments. It supports various runtimes, including Java, Node.js, Python, Go, and .NET so it can be used with various languages and frameworks. By keeping everything in the cloud while allowing local debugging, MerLoc can drastically reduce the time lost on mocking AWS resources, which can help to speed up the development process and make it more efficient.

MerLoc is available both as an open-source project on GitHub and as a completely managed service by Thundra. The open-source version of MerLoc allows developers to use the tool independently without needing to pay for a subscription or managed service. This can be a good option for developers who are comfortable working with open-source tools and want to try out MerLoc without making a financial commitment.

Check out the MerLoc repo here:

On the other hand, the managed service version of MerLoc provides a more streamlined and convenient way to use the tool, with support and assistance from the Thundra team. Soon, MerLoc will also be available on Sidekick, an open-source live application debugger for non-serverless applications. This can be a good option for developers who want to get up and running with MerLoc quickly and easily without needing to set up and configure the tool themselves.

MerLoc brings hot-reloading and live debugging to Lambdas

Hot reloading and live debugging are techniques that can significantly improve the productivity of developers working on serverless applications. Hot reloading allows developers to make changes to their code and see the results in real time without stopping and restarting the application. Saving time and effort, developers can iterate quickly and immediately see the results of their changes.

On the other hand, live debugging allows developers to step through their code line by line and debug it in real time. This can help developers to identify and fix errors and issues more quickly, as they can see what is happening at each step of the code execution. Together, hot reloading and live debugging can help developers work more efficiently and effectively, allowing them to make changes and debug their code quickly and easily.

In conclusion, MerLoc is a valuable tool that can make serverless development more manageable and efficient. By redirecting serverless invocations from the AWS cloud to a local environment, MerLoc enables developers to develop and debug their functions using their local IDE while still using the full range of AWS services and features. This can speed up the development process, reduce the time spent mocking AWS resources, and improve the developer experience. Additionally, hot reloading and live debugging can enhance developer productivity by allowing developers to make changes and debug their code quickly and easily. Overall, MerLoc is a powerful tool that can help developers to work more efficiently and effectively and should be adopted by anyone looking to improve their serverless development experience. You can check out MerLoc’s homepage here.

Note: ChatGPT has been used to assist in writing this article.

--

--

barış kaya

start-ups, stand-up comedy and ankara. aws community builder product engineer @synnada also interested in node.js, flutter, game dev with unity-playmaker