Welcome to my blog 👋

I am a Software Developer who occasionally write about topics like .NET, Azure, IoT, AWS, Open Source, etc. The blog content mostly about my recent learning and experience.

Handling Partial Batch Failure When Processing SQS Messages with a Lambda Function

Amazon Simple Queue Service (SQS) is a fully managed message queuing service that enables you to decouple and scale microservices, distributed systems, and serverless applications. One common use case for SQS is to process messages from a queue as a batch using a Lambda function. However, in some cases, you may encounter partial batch failure, where some messages in the batch are processed successfully, while others fail. In this case, you need to handle the partial batch failure to ensure that the messages that failed to process are retried, while the messages that succeeded are not processed again.

Read more...

Create custom project template in Visual Studio

You can create your own custom templates for any type of project, such as an Web, API, Console, or class library.

Read more...

Amazon SNS payload-based message filtering

By default, an Amazon SNS topic subscriber receives every message that's published to the topic. To receive only a subset of the messages, a subscriber must assign a filter policy to the topic subscription.

Read more...

How to Deserialize DynamoDb stream JSON to Object in .NET Lambda?

Whenever an application creates, updates, or deletes items in the table, DynamoDB Streams writes a stream record with the primary key attributes of the items that were modified. You can configure the stream so that the stream records capture additional information, such as the "before" and "after" images of modified items.

Read more...

Run .NET Lambda Function Locally Using LocalStack

AWS Toolkit for Visual Studio makes it easier for developers to develop and debug Lambda functions locally but for actual Lambda integration test, we need to deploy Lambda function in AWS account.

Read more...

Amazon SQS local development using LocalStack

Amazon SQS is a reliable, highly-scalable hosted queue for storing messages as they travel between applications or microservices. Amazon SQS moves data between distributed application components and helps you decouple these components. That means to test your application you will need to connect to the Amazon SQS service each time. For development and testing purposes, you’ll likely want to test locally.

Read more...

Amazon S3 local development using LocalStack

It's always a good practice, before moving your code into cloud, do integration test from local dev environment. Let's say if you don't have AWS account access from your development machine Or you don't want to create resources in AWS account just for integration testing purpose in that situation LocalStack is best choice.

Read more...

Reducing complexity and enhance readability of C# unit tests using AutoFixture

Unit tests allows developers to verify their code to make sure that the code works as expected and to identify and fix bugs at early stage. The goal of unit test is to isolate each part of the program and test them individually. When we write Unit Tests for individual code, we mock all external dependencies. The purpose of mocking is to isolate the code being tested without affecting the behavior or state of external dependencies.

Read more...

API Load Testing using .NET NBomber

NBomber is an open source load testing framework which help .NET developers to load test their applications. NBomber is a lightweight framework for writing load tests which you can use to test literally any system and simulate any production workload. With NBomber you can test any PULL or PUSH system (HTTP, WebSockets, GraphQl, gRPC, SQL Database, MongoDb, Redis etc).

Read more...

Access Amazon DynamoDB using Token Vending Machine

When we are working in multi-tenant SaaS application, we need to ensure tenant isolation is maintained. SaaS application can be built with a variety of different architecture. Regulatory, competitive, strategic, cost efficiency, and market considerations all have some influence on the shape of your SaaS architecture. Primarily there are 3 different patterns to design multi-tenant SaaS applications.

Read more...