Crear aplicaciones que necesitan escalar lecturas y escrituras de forma independiente es un desafío con los patrones CRUD tradicionales. Esta habilidad proporciona plantillas y patrones CQRS listos para usar con el fin de separar las responsabilidades de comando y consulta, permitiendo un rendimiento optimizado tanto para cargas de trabajo intensivas en escritura como para aquellas con muchas lecturas.
Télécharger le ZIP du skill
Importer dans Claude
Allez dans Paramètres → Capacités → Skills → Importer un skill
Activez et commencez à utiliser
Tester
Utilisation de "cqrs-implementation". ¿Cómo separo las operaciones de lectura y escritura en mi aplicación Python?
Résultat attendu:
- CQRS separa tu aplicación en dos modelos distintos: Comandos (operaciones de escritura que cambian estado) y Consultas (operaciones de lectura que devuelven datos). La habilidad proporciona plantillas Python mostrando cómo implementar manejadores de Comando y Consulta, un bus de comandos para el dispatching, y modelos de lectura separados optimizados para patrones de consulta específicos.
- Los componentes clave incluyen: clase base de Comando con validación, interfaz de CommandHandler, CommandBus para enrutamiento, clase base de Consulta, QueryHandler para recuperación de datos, y ReadModelSynchronizer para mantener las vistas actualizadas.
Utilisation de "cqrs-implementation". Muéstrame cómo manejar el retraso entre escribir datos y leerlos de vuelta
Résultat attendu:
- Esto se llama consistencia eventual. La habilidad incluye un patrón de ConsistentQueryHandler que puede esperar a que el modelo de lectura se actualice después de una escritura. Sondea la versión de la proyección y reintenta hasta alcanzar la versión esperada, con un timeout configurable.
- Si el timeout expira, devuelve los datos obsoletos con una bandera de advertencia para que tu aplicación pueda decidir si continuar o notificar al usuario.
Audit de sécurité
SûrStatic analysis detected 30 potential issues, but all are false positives. The scanner misidentified markdown code fences as shell execution, database queries as network fetches, documentation URLs as suspicious, and sort order strings as weak cryptography. This is a legitimate CQRS educational skill with Python code templates. No actual security risks identified.
Score de qualité
Ce que vous pouvez construire
Construir Plataforma de E-commerce de Alto Rendimiento
Separar el procesamiento de pedidos (escrituras) de la navegación del catálogo de productos (lecturas) para manejar picos de tráfico del Black Friday con diferentes estrategias de escalado.
Implementar Panel de Análisis en Tiempo Real
Crear modelos de lectura optimizados para consultas de agregación complejas mientras se mantienen las operaciones de escritura simples para pipelines de ingestión de datos.
Migrar Aplicación Monolítica a Arquitectura Basada en Eventos
Introducir CQRS incrementalmente para separar preocupaciones y preparar capacidades futuras de event sourcing.
Essayez ces prompts
Ayúdame a configurar una estructura básica de CQRS en Python. Necesito clases base de comando y consulta, un bus de comandos y manejadores simples para un dominio de gestión de usuarios.
Muéstrame cómo implementar una proyección de modelo de lectura que mantenga un perfil de usuario desnormalizado sincronizado con eventos del dominio. Incluye gestión de checkpoints para resiliencia.
Crear una aplicación FastAPI con endpoints POST/DELETE separados para comandos y endpoints GET para consultas, usando inyección de dependencias para buses de comandos y consultas.
Implementar un manejador de consultas que pueda esperar la sincronización del modelo de lectura después de una operación de escritura, con timeout y advertencia de datos obsoletos para consistencia de lectura después de escritura.
Bonnes pratiques
- Comienza con una clara separación entre comandos y consultas - no mezcles lógica de lectura y escritura en el mismo manejador
- Diseña modelos de lectura específicamente para sus patrones de consulta en lugar de intentar crear una vista única para todos
- Implementa manejadores de comandos idempotentes para habilitar reintentos seguros durante fallos de red
Éviter
- Consultar la base de datos de escritura dentro de manejadores de comandos - los comandos solo deben validar y persistir, nunca leer para lógica de negocio
- Crear un único modelo de lectura que intente servir todos los patrones de consulta - esto defeats el propósito de los modelos de lectura optimizados
- Ignorar la consistencia eventual y asumir disponibilidad inmediata de lectura después de escritura sin el manejo adecuado