Category: Technical
-
Retrieval-Augmented Generation (RAG) simply explained
In this article, we will explain that RAG is really nothing more than saying: hey LLM, here is a bunch of data, can you tell me about it?
-
Serverless OpenTelemetry at scale: generating traces
In the second installment of the Serverless OpenTelemetry at scale series we will look at the way we generate and propagate telemetry in a serverless environment.
-
Serverless OpenTelemetry at scale: the PostNL context
In the first installment of the Serverless OpenTelemetry at scale series we will cover the PostNL context and need for observability.
-
Evolve data structures in NoSQL with Python data models
This article explores design patterns to support backward compatibility when evolving your DynamoDB data structures.
-
Creating a serverless Re:Invent session tracker
If you’ve ever attended Re:Invent, you’ll know that keeping track of which sessions to attend is extremely difficult. To stay ahead of the game, I built a session tracker. And of course, it’s serverless. In this article I’ll highlight the more interesting design decisions.
-
Authorizing cross-account KMS access with aliases
KMS aliases are a great way to make KMS keys more convenient. But permitting one account to use an KMS key in another account through a KMS alias can be difficult. This article explains why, and how to solve the problem correctly. Let’s start with the example shown in the diagram above. Account B has…
-
Serverless Messaging: Latency Compared
In this article we will compare the latency introduced by common messaging services: SQS, SNS, Step Functions, EventBridge, Kinesis, and DynamoDB Streams.
-
Implement the Priority Queue Pattern with SQS and Lambda
A queue is a buffer for constrained resources. A priority queue is an additional queue that should be emptied first, even when the main queue has millions of items on it. This allows important messages to be processed quickly, regardless of system load. In this article, we will show how to implement the priority queue…
-
When is the Lambda Init Phase Free, and when is it Billed?
This article will demystify when the AWS Lambda init duration is free, and when it is billed.
-
Lambda Cold Starts and Bootstrap Code
In this article we will explore the lambda bootstrap code and its effects on cold starts.
-
Async Lambda Function Retries with Backoff and Jitter
In this post we’ll implement a custom async Lambda retry handler with exponential backoff, full jitter, and delays up to 12 hours.
-
The 9 Ways an SQS Message can be Deleted
Over the years many features and integrations have been added to SQS. Some of these features introduce new, and sometimes surprising, ways for a message to disappear. In this article we will look at nine ways a message can be removed from an SQS queue.
-
Reliable Auto-Incrementing Integers in DynamoDB
In this article we will use DynamoDB Transactions, Conditions, and Atomic Counters to achieve reliable auto-incrementing IDs at any scale.
-
Anonymous User Identities with Cognito Lambda Triggers
In this article we will use Cognito Lambda Triggers to avoid personally identifiable information (PII) altogether, allowing for completely anonymous user sign-ups.
-
Monitor Events from Multiple S3 Buckets with EventBridge
S3 Buckets can be configured to stream their objects’ events to the default EventBridge Bus. This is an on-or-off toggle per Bucket. When multiple buckets have EventBridge notifications enabled, they will all send their events to the same Event Bus. In this article, we will use this to respond to events across multiple S3 Buckets.
-
Filter DynamoDB Event Streams Sent to Lambda
Event Source Mappings are the invisible engine converting streams and queues to batches. In this article we will dive deep on Event Source Mappings and its filtering capabilities.
-
Cache Control with CloudFront Functions
In this article we will cover how we can configure and instruct our CDNs and browsers to optimally cache our assets. We will use CloudFront behaviors to configure the CDN and CloudFront Functions to add HTTP caching headers.
-
The Anatomy of a CloudFront Distribution
CloudFront is a Content Distribution Network (CDN). It reduces latency and load on backend servers. In this article we’ll look at the various components of a CloudFront distribution.