Serverless Application Patterns - Indexing Searchable User-Generated Content

Searchable content is a common component of many modern applications. But for applications that rely on a streams of new user-generated content how can we create a system that reliably and rapidly indexes searchable content and also provides ways to update, and act on changes to that data later on? This post will show you an architecture that can accomplish this using AWS services like Lambda, API Gateway, S3, Systems Manager Parameter Store, and DynamoDB. We’ll also use the third party provider Algolia for search.

AWS First-In-First-Out Queues

Recently, I needed to put together system that would take new DynamoDB table items, queue up JSON messages in first-in-first-out order, and trickle them out to a 3rd party API over time.

I love not having to maintain things later so I decided to throw together a solution on top of managed AWS services. Here’s a high-level diagram of what I came up with:

Full Queue Diagram

Let’s take a look at how it all works.

Issues with the typing Library in Python 3.7 and AWS Lambda

I recently upgraded an AWS Lambda API for Upfront Jobs to Python 3.7. This upgrade required me to use a library that relies on the typing module as one if its dependencies. However, when I deployed I noticed conflicts between the Python standard library typing and the typing module that was being installed. Here’s how I resolved the issues for my work and how others could do the same. If you’d like the simple solution and no explanation, scroll down to the Solution section.

New Course - Building Serverless Chatbots with AWS Lex.

Are you interested in learning how to create your own Serverless chatbots with AWS services like Lex and Lambda? Great news! I just launched a course that’s perfect for you. You’ll build your own alerting chatbot on AWS and integrate it into a Slack organization. Here’s an example of the bot in action inside Slack:

The Lex Chatbot in Slack

Want to know more?

Here’s me (actually on camera!) talking about the course:

I’m thrilled to announce that my latest Pluralsight course is here!

A photo of a course slide with the title and my headshot

In my new course, Using the Serverless Framework on AWS with Node.js, I’ve put together an introduction to the Serverless Framework that should be suited to anyone interested in learning more about serverless tools and technologies.