Skip to content
Open
Show file tree
Hide file tree
Changes from 6 commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
f99697a
Add documentation prompts for Reactive Domain library
Apr 15, 2025
f9b8082
Add comprehensive documentation for Reactive Domain library
Apr 16, 2025
7734833
Improve documentation navigation with learning path and next/previous…
Apr 16, 2025
ba93c45
Add component navigation with next/previous links
Apr 16, 2025
3f6bcfc
Add documentation and project status badges to README
Apr 16, 2025
e91ef8b
Address PR #169 review feedback: Update repository references and enh…
May 3, 2025
8677ee5
Removed the doc-prompt ai todo list from the project
May 3, 2025
aa05447
Delete doc-prompt.md
leopoldodonnell May 3, 2025
24f0f1a
Add index for key types including ReadModelBase, MessageBuilder, Comm…
May 3, 2025
96bd168
t pull --no-rebase origin reactive-documentation
May 3, 2025
601a903
Enhanced documentation with detailed descriptions and examples, added…
May 3, 2025
dca86f9
Add code example files to fix broken links in documentation
May 3, 2025
2c03ad8
Add remaining code examples to complete documentation
May 3, 2025
aa3a79b
Add documentation for EventRecorder and EventDrivenStateMachine classes
May 3, 2025
f46a067
Fix documentation links to point to ReactiveDomain organization and c…
May 11, 2025
aa654aa
Document component relationships with new architecture section and cr…
May 11, 2025
0792564
Fix code examples to use RaiseEvent() instead of Apply() for creating…
May 11, 2025
b23bbd7
Enhance architecture documentation with detailed CQRS and Event Sourc…
May 11, 2025
eae813e
Improve terminology consistency and technical accuracy across documen…
May 11, 2025
21c77c4
Complete API reference enhancements with comprehensive documentation …
May 11, 2025
33df182
Add comprehensive real-world examples for banking, e-commerce, and in…
May 11, 2025
582b9bd
Improve documentation navigation and structure with comprehensive cro…
May 11, 2025
97f8667
Enhance learning resources with comprehensive learning path and troub…
May 11, 2025
0e0546e
not needed
May 11, 2025
5c48637
Add comprehensive documentation for Event-Driven State Machine
May 11, 2025
1ef0bbf
Fix MessageBuilder documentation to clarify correlation tracking requ…
May 11, 2025
6035ff2
Update command.md to use MessageBuilder.From(source).Build() syntax i…
May 12, 2025
d232936
Update aggregate-root.md to use MessageBuilder.From(source).Build() s…
May 12, 2025
33309f8
Update event.md to use MessageBuilder.From(source).Build() syntax ins…
May 12, 2025
6872ea6
Update event handling documentation to match best practices
May 12, 2025
ad7750e
Update command processing documentation to match best practices
May 12, 2025
b658357
Update aggregate implementation documentation to reflect best practices
May 12, 2025
7f8ee64
Update repository documentation to reflect best practices and modern …
May 12, 2025
d423074
Update ReadModelBase and IReadModelRepository documentation with mode…
May 12, 2025
cdd0b8f
Complete CQRS Implementation documentation with query handling and ev…
May 12, 2025
88b7e16
Complete event sourcing patterns and saga implementation patterns doc…
May 12, 2025
221eaf6
Add comprehensive error handling patterns documentation
May 12, 2025
cbf60f8
Add comprehensive testing patterns documentation
May 12, 2025
f768353
Enhance test fixture examples in testing patterns documentation
May 12, 2025
5d4728a
Update Reactive Domain documentation with modern best practices
May 12, 2025
b78e19f
remove the checklist from git
May 12, 2025
78548cc
Fix Mermaid diagram syntax in component-relationships.md
May 12, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -199,6 +199,7 @@ ClientBin/
*.publishsettings
node_modules/
orleans.codegen.cs
todo.md

# Since there are multiple workflows, uncomment next line to ignore bower_components
# (https://github.com/github/gitignore/pull/1529#issuecomment-104372622)
Expand Down
23 changes: 22 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
[![Build status](https://ci.appveyor.com/api/projects/status/oir89k5nyyouqtsm?svg=true)](https://ci.appveyor.com/project/jageall/reactive-domain)
[![Build Status](https://travis-ci.org/linedata/reactive-domain.svg?branch=master)](https://travis-ci.org/linedata/reactive-domain)
[![Build Status](https://travis-ci.org/ReactiveDomain/reactive-domain.svg?branch=master)](https://travis-ci.org/ReactiveDomain/reactive-domain)
[![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg)](code_of_conduct.md)
[![Documentation](https://img.shields.io/badge/docs-latest-brightgreen.svg)](https://reactivedomain.github.io/reactive-domain/)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This points to a URL that doesn't exist

[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![NuGet](https://img.shields.io/nuget/v/ReactiveDomain.svg)](https://www.nuget.org/packages/ReactiveDomain/)
[![GitHub stars](https://img.shields.io/github/stars/ReactiveDomain/reactive-domain.svg)](https://github.com/ReactiveDomain/reactive-domain/stargazers)
[![GitHub issues](https://img.shields.io/github/issues/ReactiveDomain/reactive-domain.svg)](https://github.com/ReactiveDomain/reactive-domain/issues)

# Reactive Domain

Expand All @@ -10,6 +15,22 @@ Reactive Domain is an open source framework for implementing event sourcing in .

The framework is highly opinionated. It focuses on using a small number of consistent patterns and design principles in its public interfaces to enable developers to get up to speed quickly. Ease of use and "design for code review" have been the driving forces behind the framework's evolution. Where trade-offs have been necessary, these principles have been emphasized over performance.

## Documentation

Comprehensive documentation for Reactive Domain is available in the [docs](./docs) directory. The documentation includes:

- [Introduction and Overview](./docs/README.md) - Get started with Reactive Domain
- [Core Concepts](./docs/core-concepts.md) - Learn about event sourcing fundamentals
- [Usage Patterns](./docs/usage-patterns.md) - Discover common patterns and best practices
- [API Reference](./docs/api-reference/README.md) - Explore the API documentation
- [Troubleshooting Guide](./docs/troubleshooting.md) - Solve common issues
- [Architecture Guide](./docs/architecture.md) - Understand the system architecture
- [Migration Guide](./docs/migration.md) - Migrate between versions
- [Security Guide](./docs/security.md) - Implement security best practices
- [Performance Optimization](./docs/performance.md) - Optimize your application

For developers new to Reactive Domain, we recommend starting with the [Introduction](./docs/README.md) followed by the [Core Concepts](./docs/core-concepts.md) guide.

## Contributing

Pull requests are welcome! Take a look at the open issues, join our [discussion on Slack](https://reactivedomain.slack.com), or contribute in an area where you see a need. Contributors and participants on our Slack channels are expected to abide by the project's [code of conduct](CODE_OF_CONDUCT.md). Read the full guidelines on [contributing](CONTRIBUTING.md).
257 changes: 257 additions & 0 deletions doc-prompt.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,257 @@
# Prompts for creating comprehensive documentation for the Reactive Domain library

{{ ... }}

Use Mermaid to generate diagrams and flowcharts.

Use the following prompts to create comprehensive documentation for the Reactive Domain library:

## Table of Contents Prompt

Create a table of contents for the documentation, including:

1. [x] Overview
2. [x] Core Concepts
3. [x] Component Documentation (partially complete)
4. [x] Interface Documentation (partially complete)
5. [x] Usage Patterns
6. [x] Code Examples (structure only)
7. [x] Troubleshooting Guide
8. [x] API Reference (partially complete)
9. [x] Architecture Guide
10. [x] Migration Guide
11. [x] Glossary
12. [x] FAQ
13. [x] Deployment Guide
14. [x] Performance Optimization Guide
15. [x] Security Guide
16. [x] Integration Guide
17. [x] Video Tutorial Script
18. [x] Workshop Materials
19. [x] Documentation Structure

## Overview Prompt

Generate comprehensive documentation for the Reactive Domain library, which is an open-source framework for implementing event sourcing in .NET projects using reactive programming principles. The documentation should cover all aspects of the library, including its core concepts, components, interfaces, and usage patterns. The documentation should be accessible to developers of all skill levels, from beginners to experts.

## Core Concepts Prompt

Document the core concepts of event sourcing as implemented in Reactive Domain, including:

1. Event sourcing fundamentals and how they're implemented in Reactive Domain
2. The event store architecture and integration with EventStoreDB
3. The CQRS (Command Query Responsibility Segregation) pattern implementation
4. The reactive programming principles used throughout the library
5. The domain-driven design concepts that underpin the framework
6. How events, commands, and messages flow through the system
7. The correlation and causation tracking mechanisms

## Component Documentation Prompt

Create detailed documentation for each of the following components, including their purpose, interfaces, implementation details, and usage examples:

1. **ReactiveDomain.Core**: Document the fundamental interfaces like `IEventSource`, `IMetadataSource`, and other core abstractions.
2. **ReactiveDomain.Foundation**: Document the domain implementation including `AggregateRoot`, `EventRecorder`, and repository patterns.
3. **ReactiveDomain.Messaging**: Document the messaging framework, including message types, handlers, and routing.
4. **ReactiveDomain.Persistence**: Document the event storage mechanisms, including `EventData`, `EventReadResult`, and stream operations.
5. **ReactiveDomain.Transport**: Document the transport layer for messages.
6. **ReactiveDomain.Testing**: Document the testing utilities and frameworks for event-sourced systems.
7. **ReactiveDomain.Policy**: Document the policy implementation and enforcement mechanisms.
8. **ReactiveDomain.IdentityStorage**: Document the identity storage mechanisms.
9. **ReactiveDomain.Tools**: Document the developer tools and utilities.

## Interface Documentation Prompt

Generate detailed documentation for all public interfaces in the library, including:

1. `IEventSource` - The core interface for event-sourced entities
2. `IRepository` - The repository pattern implementation for event-sourced aggregates
3. `ICorrelatedRepository` - The repository with correlation support
4. `IListener` - The event stream listener interface
5. `IMetadataSource` - The metadata handling interface
6. `ISnapshotSource` - The snapshot mechanism interface
7. `IStreamStoreConnection` - The event store connection interface
8. `IEventSerializer` - The event serialization interface
9. `IMessage`, `ICommand`, `IEvent` - The message type interfaces
10. `ICorrelatedMessage`, `ICorrelatedEventSource` - The correlation tracking interfaces

For each interface, include:
- Purpose and responsibility
- Method and property descriptions
- Usage patterns and best practices
- Implementation considerations
- Common pitfalls and how to avoid them

## Usage Patterns Prompt

Document the common usage patterns and best practices for Reactive Domain, including:

1. Setting up a new Reactive Domain project
2. Creating and working with aggregates
3. Implementing commands and events
4. Setting up repositories and event stores
5. Implementing projections and read models
6. Handling concurrency and versioning
7. Error handling and recovery strategies
8. Testing event-sourced systems
9. Performance optimization techniques
10. Integration with other systems and frameworks

## Code Examples Prompt

Create practical code examples that demonstrate:

1. Creating a new aggregate root
2. Handling commands and generating events
3. Saving and retrieving aggregates from repositories
4. Setting up event listeners and subscribers
5. Implementing projections for read models
6. Handling correlation and causation
7. Implementing snapshots for performance
8. Testing aggregates and event handlers
9. Integration with ASP.NET Core or other .NET applications
10. Complete sample applications demonstrating end-to-end workflows

## Troubleshooting Guide Prompt

Create a troubleshooting guide that addresses common issues and challenges when working with Reactive Domain, including:

1. Event versioning and schema evolution
2. Handling concurrency conflicts
3. Debugging event-sourced systems
4. Performance issues and optimization
5. Integration challenges with existing systems
6. Testing strategies and common testing issues
7. Deployment considerations and best practices
8. Monitoring and observability

## API Reference Prompt

Generate a complete API reference for all public types, methods, properties, and events in the Reactive Domain library, organized by namespace and assembly. The reference should include:

1. Type signatures and inheritance hierarchies
2. Method signatures, parameters, and return types
3. Property types and accessibility
4. Event patterns and subscription models
5. Extension points and customization options
6. Deprecation notices and migration paths

## Architecture Guide Prompt

Create an architecture guide that explains:

1. The high-level architecture of Reactive Domain
2. The design principles and patterns used
3. The component interactions and dependencies
4. The extension points and customization options
5. The integration patterns with other systems
6. Scaling and performance considerations
7. Security considerations and best practices

## Migration Guide Prompt

Create a migration guide for users upgrading from previous versions of Reactive Domain, including:

1. Breaking changes and deprecations
2. New features and enhancements
3. Migration strategies and patterns
4. Backward compatibility considerations
5. Testing strategies for migrations

## Glossary Prompt

Create a comprehensive glossary of terms used in Reactive Domain and event sourcing, including:

1. Event sourcing terminology
2. CQRS terminology
3. Domain-driven design terminology
4. Reactive programming terminology
5. Reactive Domain-specific terminology

## FAQ Prompt

Generate a frequently asked questions section that addresses common questions about Reactive Domain, including:

1. When to use event sourcing and CQRS
2. Performance considerations and optimizations
3. Scaling event-sourced systems
4. Integration with existing systems
5. Testing strategies and best practices
6. Common pitfalls and how to avoid them
7. Comparison with other event sourcing frameworks

## Deployment Guide Prompt

Create a deployment guide that covers:

1. Development environment setup
2. Testing environment configuration
3. Production deployment considerations
4. Scaling strategies
5. Monitoring and observability
6. Backup and recovery strategies
7. Security considerations

## Performance Optimization Guide Prompt

Generate a performance optimization guide that covers:

1. Event store performance considerations
2. Snapshot strategies for performance
3. Read model optimization techniques
4. Message handling performance
5. Scaling strategies for high-throughput systems
6. Monitoring and profiling techniques
7. Benchmarking and performance testing

## Security Guide Prompt

Create a security guide that addresses:

1. Authentication and authorization in event-sourced systems
2. Data protection and privacy considerations
3. Audit logging and compliance
4. Secure deployment practices
5. Threat modeling for event-sourced systems
6. Security testing strategies

## Integration Guide Prompt

Generate an integration guide that covers:

1. Integration with ASP.NET Core
2. Integration with other .NET frameworks and libraries
3. Integration with non-.NET systems
4. API design for event-sourced systems
5. Message contracts and versioning
6. Integration testing strategies

## Video Tutorial Script Prompt

Create scripts for video tutorials that demonstrate:

1. Getting started with Reactive Domain
2. Building a complete application with Reactive Domain
3. Advanced usage patterns and techniques
4. Performance optimization and scaling
5. Testing strategies and best practices

## Workshop Materials Prompt

Generate workshop materials for training developers on Reactive Domain, including:

1. Presentation slides
2. Hands-on exercises
3. Code samples and starter projects
4. Discussion questions and activities
5. Assessment materials

## Documentation Structure Prompt

Organize all the documentation into a coherent structure with:

1. A logical hierarchy of topics
2. Clear navigation paths for different user journeys
3. Cross-references between related topics
4. Progressive disclosure of complexity
5. Search-friendly organization and metadata
Loading