Hola,
Alguna vez se han preguntado cual es la diferencia entre API Gateway y Transit Gateway en AWS, pues yo si y aquí te explico:


API Gateway
  • Función: Es un servicio que actúa como puerta de entrada para exponer y gestionar APIs (REST, HTTP, WebSocket).
  • Uso: Se usa cuando querés que clientes (apps web, móviles, servicios externos) consuman tus APIs de forma segura y controlada.
Características:
  1. Maneja autenticación, autorización y seguridad (OAuth, IAM, API Keys).
  2. Hace rate limiting, throttling, logging, CORS.
  3. Se integra con Lambda, ECS, EC2, S3, DynamoDB, etc.
  4. Ideal para microservicios y arquitecturas serverless.
Ejemplo: 
Una app móvil que consume servicios de backend mediante un endpoint expuesto con API Gateway.

Transit Gateway
  • Función: Es un hub de red para interconectar VPCs y on-premises (via VPN o Direct Connect).
  • Uso: Se usa cuando tenés múltiples VPCs (en la misma región o distintas) y querés gestionarlas como una sola red centralizada.
Características:
  1. Simplifica la conectividad entre muchas VPCs (sin necesidad de hacer peering entre todas).
  2. Escalable y con mayor rendimiento que el peering clásico.
  3. Compatible con multicuenta y multirregión.
  4. Maneja el enrutamiento centralizado.
Ejemplo: 
Una empresa con varias VPCs (producción, pruebas, seguridad, analítica) que necesita conectarlas entre sí y también con el datacenter físico.

Resumen corto:
API Gateway → maneja tráfico de usuarios hacia tus APIs.
Transit Gateway → maneja tráfico de red entre tus VPCs/on-premises.
Hola,
En una cola de tipo topic en RabbitMQ, la routing key (clave de enrutamiento) es una cadena que se utiliza para determinar a qué colas se debe enrutar un mensaje. Esta cadena, compuesta por palabras separadas por puntos, permite definir patrones de enrutamiento complejos utilizando comodines como * (para una palabra) y # (para cero o más palabras).


Elaboración:

Intercambios (Exchanges) tipo Topic:
Los intercambios tipo topic son un tipo de exchange en RabbitMQ que permite un enrutamiento flexible basado en patrones de palabras clave en la routing key.

Clave de Enrutamiento (Routing Key):
El productor incluye una routing key en el mensaje, que actúa como una dirección para el intercambio.

Vinculaciones (Bindings):
Las colas se vinculan al exchange con patrones de vinculación (binding patterns) que pueden coincidir con la routing key del mensaje.

Comodines en las Vinculaciones:
Los patrones de vinculación pueden usar * (asterisco) para coincidir con una sola palabra y # (almohadilla) para coincidir con cero o más palabras, permitiendo un enrutamiento más flexible.

Ejemplo:
Si un mensaje tiene la routing key "news.sport.2024", y una cola tiene una vinculación con el patrón "news.#", el mensaje se enrutará a esa cola porque la vinculación coincide con la routing key.

En resumen:
La routing key y las vinculaciones con patrones en un exchange tipo topic permiten un control preciso de a qué colas se envían los mensajes, basándose en la estructura y el contenido de la routing key.


Hola,
Como se pueden descartar los cambios de clases a las cuales ya se les hizo COMMIT en GIT, pero aún no se les ha realizo el PUSH?


Se realiza de la siguiente forma:

Resetear el commit (rehacerlo sin esa clase)

git reset --soft HEAD~1

Esto revierte el último commit pero deja los archivos como estaban en staging, osea, mantiene los cambios para poderlos versionar nuevamente.