POLITICA DE COOKIES

Q2BSTUDIO.COM utiliza cookies técnicas, analíticas, de sesión y de publicidad con la finalidad de prestar un mejor servicio. No obstante, necesitamos su consentimiento explícito para poder utilizarlas. Así mismo puede cambiar la configuración de las cookies u obtener más información aquí .

Lecciones de Seguridad con CompletableFuture y Agrupación de Temas en Kafka para Microservicios

CompletableFuture y Kafka: dos lecciones de seguridad y diseño al modernizar microservicios en Q2BSTUDIO

Publicado el 25/09/2025

En este artículo práctico compartimos dos lecciones de seguridad y diseño que aprendimos al modernizar microservicios en Q2BSTUDIO, empresa de desarrollo de software y aplicaciones a medida especializada en inteligencia artificial, ciberseguridad y servicios cloud.

Issue 1 CompletableFuture y contexto de seguridad perdido

Problema Detectamos que al usar CompletableFuture.supplyAsync() en uno de nuestros microservicios Spring Boot algunas llamadas a servicios externos realizadas con Feign client devolvían 401 Unauthorized. La causa raíz fue que CompletableFuture ejecuta las tareas en hilos distintos y, por defecto, el SecurityContext de Spring Security que contiene el token JWT no se propaga al nuevo hilo. Como consecuencia, nuestro interceptor de Feign no pudo adjuntar la cabecera Authorization y el servicio receptor rechazó la petición.

Solución Implementamos un executor envuelto con DelegatingSecurityContextExecutorService para que el SecurityContext, incluyendo el token JWT, viaje junto con las tareas asíncronas. Tras este cambio el token se añadía correctamente y los 401 desaparecieron. Alternativas válidas son usar DelegatingSecurityContextRunnable o propagar el contexto manualmente al crear tareas, y revisar el uso de @Async junto con un AsyncConfigurer que mantenga el contexto de seguridad.

Issue 2 Consumidores Kafka y el uso de group id

Problema También encontramos un fallo de consumo en Kafka provocado por reutilizar el mismo consumer group id para varios topics. Al compartir el mismo group id los consumidores del grupo compiten por los mensajes y Kafka distribuye la carga entre ellos. Con un solo group id los mensajes de distintos topics terminaron siendo procesados por el mismo grupo, lo que causó consumos perdidos o desequilibrados.

Solución Asignamos un group id único por topic para que cada tema se consuma de forma independiente. De esta forma cada topic tiene su propio conjunto de consumidores y no hay competencia entre mensajes de temas distintos. Si lo que se desea es balanceo de carga entre instancias entonces sí conviene usar el mismo group id, pero siempre con la intención clara de distribuir consumo, no de mezclar topics que requieren procesamiento aislado.

Recomendaciones y buenas prácticas

Siempre que se implemente código asíncrono en aplicaciones con Spring Security asegúrese de propagar el SecurityContext a los hilos de ejecución. Para integraciones con servicios externos y Feign configure interceptores que lean el contexto o utilice wrappers como DelegatingSecurityContextExecutorService. Para Kafka planifique la estrategia de group id según el comportamiento deseado: mismo group id para load balancing y group ids distintos para consumo independiente por topic. Añada métricas y trazabilidad para detectar rápidamente 401 y problemas de consumo.

En Q2BSTUDIO ayudamos a aplicar estas prácticas en proyectos de software a medida y aplicaciones a medida y a diseñar infraestructuras seguras y escalables en servicios cloud aws y azure. Contamos con experiencia en inteligencia artificial, ciberseguridad, servicios de inteligencia de negocio y automatización, y podemos asesorar en integración segura de microservicios, gestión de tokens JWT, configuración de consumidores Kafka y despliegue en la nube.

Palabras clave aplicaciones a medida, software a medida, inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio, ia para empresas, agentes IA, power bi

Si quieres que revisemos tu arquitectura para evitar 401 relacionados con contexto de seguridad o para definir la estrategia de group ids en Kafka contacta con Q2BSTUDIO y dispondremos soluciones a medida que optimicen seguridad y rendimiento.

Fin del artículo, inicio de la diversión
Construyendo software juntos

Dando vida a tus ideas desde 2008

Diseñamos aplicaciones móviles y de escritorio innovadoras que cumplen con tus requisitos específicos y mejoran la eficiencia operativa.
Más info
Cuéntanos tu visión
Sea cual sea el alcance, podemos convertir tu idea en realidad. Envíanosla y charlemos sobre tu proyecto o una colaboración futura.
Contáctanos
artículos destacados
Live Chat
Enviado correctamente.

Gracias por confiar en Q2BStudio