Anwendungen zu erstellen, die Lese- und Schreibvorgänge unabhängig skalieren müssen, ist mit traditionellen CRUD-Mustern eine Herausforderung. Diese Skill bietet sofort einsetzbare CQRS-Vorlagen und Muster, um Befehls- und Abfrageverantwortlichkeiten zu trennen und ermöglicht optimierte Leistung für sowohl schreibintensive als auch leseintensive Workloads.
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". Wie trenne ich Lese- und Schreibvorgänge in meiner Python-Anwendung?
Résultat attendu:
- CQRS trennt Ihre Anwendung in zwei unterschiedliche Modelle: Commands (Schreibvorgänge, die den Zustand ändern) und Queries (Lesevorgänge, die Daten zurückgeben). Die Skill bietet Python-Vorlagen, die zeigen, wie Command- und Query-Handler, einen Command-Bus für das Dispatching und separate, für bestimmte Query-Muster optimierte Lesemodelle implementiert werden.
- Zu den wichtigsten Komponenten gehören: Command-Basisklasse mit Validierung, CommandHandler-Schnittstelle, CommandBus für das Routing, Query-Basisklasse, QueryHandler für den Datenabruf und ReadModelSynchronizer für die Aktualisierung der Ansichten.
Utilisation de "cqrs-implementation". Zeigen Sie mir, wie ich die Verzögerung zwischen dem Schreiben und dem Zurücklesen von Daten handhaben kann
Résultat attendu:
- Dies wird als Eventual Consistency bezeichnet. Die Skill enthält ein ConsistentQueryHandler-Muster, das auf das Aufholen des Lesemodells nach einem Schreibvorgang warten kann. Es polled die Projektionsversion und wiederholt den Vorgang, bis die erwartete Version erreicht ist, mit einem konfigurierbaren Timeout.
- Wenn das Timeout abläuft, werden die veralteten Daten mit einem Warn-Flag zurückgegeben, damit Ihre Anwendung entscheiden kann, ob sie fortfahren oder den Benutzer benachrichtigen soll.
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
Hochleistungsfähige E-Commerce-Plattform aufbauen
Trennen Sie die Auftragsverarbeitung (Schreibvorgänge) vom Produktkatalog-Browsing (Lesevorgänge), um Black-Friday-Verkehrsspitzen mit unterschiedlichen Skalierungsstrategien zu bewältigen.
Echtzeit-Analysedashboard implementieren
Erstellen Sie optimierte Lesemodelle für komplexe Aggregationsabfragen, während Sie Schreibvorgänge einfach für Dateningestion-Pipelines halten.
Monolithische Anwendung zu Event-Sourced-Architektur migrieren
Führen Sie CQRS inkrementell ein, um Bedenken zu trennen und auf zukünftige Event-Sourcing-Fähigkeiten vorzubereiten.
Essayez ces prompts
Helfen Sie mir, eine grundlegende CQRS-Struktur in Python einzurichten. Ich benötige Command- und Query-Basisklassen, einen Command-Bus und einfache Handler für eine Benutzerverwaltungsdomain.
Zeigen Sie mir, wie ich eine Lesemodell-Projection implementiere, die ein denormalisiertes Benutzerprofil mit Domain-Events synchron hält. Beziehen Sie Checkpoint-Management für Resilienz ein.
Erstellen Sie eine FastAPI-Anwendung mit separaten POST/DELETE-Endpunkten für Commands und GET-Endpunkten für Queries, unter Verwendung von Dependency Injection für Command- und Query-Busse.
Implementieren Sie einen Query-Handler, der auf die Lesemodell-Synchronisierung nach einem Schreibvorgang warten kann, mit Timeout und Warnung für veraltete Daten für Read-Your-Writes-Konsistenz.
Bonnes pratiques
- Beginnen Sie mit einer klaren Grenze zwischen Commands und Queries - mischen Sie keine Lese- und Schreiblogik im selben Handler
- Gestalten Sie Lesemodelle spezifisch für ihre Query-Muster, anstatt zu versuchen, eine Einheitslösung zu erstellen
- Implementieren Sie idempotente Command-Handler, um sichere Wiederholungen bei Netzwerkausfällen zu ermöglichen
Éviter
- Abfragen der Schreibdatenbank innerhalb von Command-Handlern - Commands sollten nur validieren und speichern, niemals für Geschäftslogik lesen
- Erstellen eines einzelnen Lesemodells, das alle Query-Muster bedienen soll - dies untergräbt den Zweck optimierter Lesemodelle
- Ignorieren von Eventual Consistency und Annehmen sofortiger Read-After-Write-Verfügbarkeit ohne ordnungsgemäße Handhabung