# sqs-queue

Published articles for sqs-queue.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Replacing AWS Step Functions with SQS FIFO queues and cutting the cost in half

DevFeed: [Replacing AWS Step Functions with SQS FIFO queues and cutting the cost in half](<https://devfeed.tech/articles/replacing-aws-step-functions-with-sqs-fifo-queues-and-cutting-the-cost-in-half-23900.md>)

Original publisher: [Read original article](<https://medium.com/smg-real-estate/replacing-aws-step-functions-with-sqs-fifo-queues-and-cutting-the-cost-in-half-9ab97e819b3a?source=rss----2186e5b9bd8f---4>)

Author: Alexei Liulin

Published: 2025-03-14T14:47:27Z

Content type: article

Language: en

Sources: [Homegate Engineering Blog - Medium](<https://devfeed.tech/sources/homegate-engineering-blog-medium.md>)

Topics: [Amazon Simple Queue Service (SQS)](<https://devfeed.tech/topics/amazon-simple-queue-service-sqs.md>), [AWS Step Functions](<https://devfeed.tech/topics/aws-step-functions.md>), [Amazon Web Services](<https://devfeed.tech/topics/aws.md>)

Tags: [aws](<https://devfeed.tech/tags/aws.md>), [aws-step-functions](<https://devfeed.tech/tags/aws-step-functions.md>), [batching](<https://devfeed.tech/tags/batching.md>), [cloud-computing](<https://devfeed.tech/tags/cloud-computing.md>), [cost](<https://devfeed.tech/tags/cost.md>), [cost-optimization](<https://devfeed.tech/tags/cost-optimization.md>), [email](<https://devfeed.tech/tags/email.md>), [fifo](<https://devfeed.tech/tags/fifo.md>), [lambda](<https://devfeed.tech/tags/lambda.md>), [notifications](<https://devfeed.tech/tags/notifications.md>), [push-notifications](<https://devfeed.tech/tags/push-notifications.md>), [queue](<https://devfeed.tech/tags/queue.md>), [sqs](<https://devfeed.tech/tags/sqs.md>), [sqs-queue](<https://devfeed.tech/tags/sqs-queue.md>), [workflow](<https://devfeed.tech/tags/workflow.md>)

### AI overview

The article describes SMG Real Estate's Search Alerts system, which batches property-match notifications for delivery by email or mobile push notification. It explains the original AWS Step Functions implementation and its transition-cost problem, motivating a more cost-efficient approach using SQS FIFO queues.

### Source excerpt

One of the core services for SMG Real Estate is Search Alerts -- a service that allows users to be notified about new properties published on ImmoScout24 and Homegate. For example, if a user is looking for a new apartment having N rooms and costing less than X, and not finding any matches now, they can create a search alert with those search criteria. When a new property matching those criteria is published, the user will be notified either via email or a mobile push notification. About the Search Alerts system Users can choose the frequency of notifications -- either every 5 minutes or every 4 hours (assuming there are any to be delivered). The vast majority of search alerts are configured with the 5-minute frequency. Just to get an idea of the scale, we have: Millions of published properties match saved search alerts every day More than a million emails and push notifications sent daily Check out our "Homegate's fast and modern search experience helps users find their dream home" blog post for an overview of how Search Alerts work. The Original Implementation In the original implementation we used an AWS Step Function to achieve the 5- minute batching of notifications: When a new property matching a search alert arrived, the StartSendNotificationProcess lambda would start a Step Function execution specific to that search alert. All it did was waiting for 5 minutes while the matches accumulated in the matches-{searchAlertId} SQS queue, which was programmatically created for that specific search alert If more matching listings arrived during the 5-minute waiting period, the StartSendNotificationProcess lambda attempted to start the step function execution with the same name. When it failed with the ExecutionAlreadyExists error, we knew there was already a SF for waiting. That way the deduplication of notification processes was guaranteed. After 5 minutes of waiting time, the Step Function execution proceeded with triggering the LoadMatches lambda that received the acc