El patrón fan-out con SNS
Aprenda el patrón de mensajería fan-out usando Amazon SNS para entregar un evento a muchos consumidores de Lambda independientes en paralelo.
El patrón fan-out con SNS es una lección gratuita de Serverless AWS Lambda Development en CoddyKit. Esta es la lección 4 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Serverless AWS Lambda Development, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Serverless AWS Lambda Development incluye 4 lecciones en total.
Partes de esta lección aún no han sido traducidas y se muestran en inglés.
What is Fan-Out?
Fan-out means a single event is delivered to many subscribers at once, each processing it independently and in parallel.
Why Not Call Each Directly?
Calling each downstream function from your producer tightly couples them. Adding a consumer means changing the producer. Fan-out decouples this.
SNS as the Hub
Amazon SNS is a pub/sub topic. Publishers send a message once; SNS delivers a copy to every subscriber, including multiple Lambdas.
Publishing a Message
The producer publishes to the topic ARN. It does not know or care who is subscribed.
import boto3, json
sns = boto3.client('sns')
sns.publish(
TopicArn='arn:aws:sns:us-east-1:123:orders',
Message=json.dumps({'orderId': 42})
)The SNS Event Shape
Each subscribed Lambda receives the message wrapped in an SNS records envelope.
{
"Records": [{
"Sns": {
"Message": "{\"orderId\": 42}",
"TopicArn": "arn:aws:sns:us-east-1:123:orders"
}
}]
}A Consumer Handler
Each consumer parses the message from the record and does its own job: one emails a receipt, another updates inventory.
import json
def handler(event, context):
for record in event['Records']:
msg = json.loads(record['Sns']['Message'])
print('Processing order', msg['orderId'])Fan-Out plus SQS
For reliability, subscribe SQS queues to the topic and let Lambda poll the queues. This buffers spikes and gives each consumer its own retry and DLQ.
Message Filtering
SNS filter policies let a subscriber receive only messages matching attributes, so not every consumer processes every event.
{
"eventType": ["order.created"]
}SNS vs EventBridge
SNS is simple, high-throughput pub/sub. EventBridge adds richer routing, schemas, and many SaaS sources. Choose SNS for raw fan-out, EventBridge for complex routing.
Ordering Caveat
Standard SNS topics do not guarantee order or exactly-once delivery. Use SNS FIFO topics when ordering and deduplication matter.
Idempotent Consumers
Because a message may be delivered more than once, each consumer should be idempotent so duplicates do not cause double effects.
Quick Check
Test your fan-out knowledge.
Recap
You learned the fan-out pattern: publish once to SNS, deliver to many parallel consumers, add SQS for durability, filter messages, and keep consumers idempotent.
Preguntas frecuentes
¿La lección «El patrón fan-out con SNS» es gratis?
Sí — el texto completo de «El patrón fan-out con SNS» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Serverless AWS Lambda Development, actualiza a CoddyKit PRO. El curso de Serverless AWS Lambda Development incluye 4 lecciones en total.
¿Qué aprenderé en «El patrón fan-out con SNS»?
Aprenda el patrón de mensajería fan-out usando Amazon SNS para entregar un evento a muchos consumidores de Lambda independientes en paralelo. Practicas Serverless AWS Lambda Development con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Serverless AWS Lambda Development?
No se requiere experiencia previa. Serverless AWS Lambda Development en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 4 de 4.
¿Cuánto tiempo toma la lección «El patrón fan-out con SNS»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Serverless AWS Lambda Development?
Sí. Cada lección de Serverless AWS Lambda Development incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Invocaciones asíncronas de Lambda
- Colas de mensajes no entregados (DLQ) para errores
- Orquestación con AWS Step Functions
- El patrón fan-out con SNS