Skip to content
Open
Show file tree
Hide file tree
Changes from 36 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
257 changes: 0 additions & 257 deletions doc-prompt.md

This file was deleted.

41 changes: 40 additions & 1 deletion docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

Welcome to the comprehensive documentation for the Reactive Domain library, an open-source framework for implementing event sourcing in .NET projects using reactive programming principles.

> **Version Information**: This documentation corresponds to the [reactive-documentation](https://github.com/linedata/reactive-domain/tree/reactive-documentation) branch, which was created from trunk commit [05e5268](https://github.com/linedata/reactive-domain/commit/05e5268f0ceef1034885905402590486fcb6fcad) ("Removes .NET 6 support", 2025-02-18). If you notice differences between this documentation and your code, please check which version of Reactive Domain you're using.
> **Version Information**: This documentation corresponds to the [reactive-documentation](https://github.com/ReactiveDomain/reactive-domain/tree/reactive-documentation) branch, which was created from trunk commit [05e5268](https://github.com/ReactiveDomain/reactive-domain/commit/05e5268f0ceef1034885905402590486fcb6fcad) ("Removes .NET 6 support", 2025-02-18). If you notice differences between this documentation and your code, please check which version of Reactive Domain you're using.

## Introduction

Expand All @@ -28,15 +28,41 @@ Reactive Domain is built on several key design principles:

## Learning Path

> **New to Reactive Domain?** Check out our [Complete Learning Path Guide](learning-path.md) for a structured approach to mastering event sourcing and CQRS with Reactive Domain.

For the best learning experience, we recommend following this progression:

1. **Start Here**: [Core Concepts](core-concepts.md) - Understand the fundamentals of event sourcing and CQRS
2. **Next**: [Usage Patterns](usage-patterns.md) - Learn how to apply these concepts in practice
3. **Then**: [Code Examples](code-examples/README.md) - See concrete implementations
- Begin with [Creating a New Aggregate Root](code-examples/creating-aggregate-root.md)
- Move on to [Handling Commands and Events](code-examples/handling-commands-events.md)
- Explore real-world examples like our [Banking Domain Example](code-examples/banking-domain-example.md)
4. **Explore**: [API Reference](api-reference/README.md) - Dive into the details of specific components
5. **Advanced**: [Architecture Guide](architecture.md) - Understand the system architecture
6. **Production**: [Deployment Guide](deployment.md) and [Performance Optimization](performance.md) - Prepare for production

### Learning Resources

- **Books and Articles**
- "Domain-Driven Design" by Eric Evans
- "Implementing Domain-Driven Design" by Vaughn Vernon
- [Martin Fowler on Event Sourcing](https://martinfowler.com/eaaDev/EventSourcing.html)
- [CQRS Journey by Microsoft](https://docs.microsoft.com/en-us/previous-versions/msp-n-p/jj554200(v=pandp.10))

- **Community Resources**
- [EventStoreDB Documentation](https://developers.eventstore.com/)
- [DDD/CQRS Google Group](https://groups.google.com/g/dddcqrs)
- [Stack Overflow - Event Sourcing Tag](https://stackoverflow.com/questions/tagged/event-sourcing)

## Navigation Resources

To help you navigate the documentation more effectively, we've created these resources:

- [Component Relationships](component-relationships.md) - Visual guide showing how different components work together
- [Navigation Index](navigation-index.md) - Comprehensive index of all documentation with cross-references
- [Quick Reference](#quick-reference) - Quick links to common tasks and key components

## Table of Contents

1. [Core Concepts](core-concepts.md)
Expand Down Expand Up @@ -206,6 +232,19 @@ For the best learning experience, we recommend following this progression:
| Deploy to production | [Deployment Guide](deployment.md) |
| Learn key terminology | [Glossary](glossary.md) |

### Key Types Reference

| Type | Description | Documentation |
|------|-------------|---------------|
| ReadModelBase | Base class for read models in CQRS architecture | [API Reference](api-reference/types/read-model-base.md) |
| MessageBuilder | Factory for creating correlated messages | [API Reference](api-reference/types/message-builder.md) |
| Command | Base class for command messages | [API Reference](api-reference/types/command.md) |
| Event | Base class for event messages | [API Reference](api-reference/types/event.md) |
| ICorrelatedMessage | Interface for messages with correlation tracking | [API Reference](api-reference/types/icorrelated-message.md) |
| AggregateRoot | Base class for domain aggregates | [API Reference](api-reference/types/aggregate-root.md) |
| IRepository | Interface for repositories | [API Reference](api-reference/types/irepository.md) |
| IEventSource | Core interface for event-sourced entities | [API Reference](api-reference/types/ievent-source.md) |

## Getting Started

If you're new to Reactive Domain, we recommend starting with the [Core Concepts](core-concepts.md) section to understand the fundamental principles behind event sourcing and how they're implemented in Reactive Domain.
Expand Down
30 changes: 30 additions & 0 deletions docs/api-reference/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,14 @@ Each type is documented with:
- Usage examples and common patterns
- Related types and interfaces

## Navigation

For easier navigation through the API reference, use these resources:

- [Component Relationships](../component-relationships.md) - Visual guide showing how different components work together
- [Navigation Index](../navigation-index.md) - Comprehensive index of all documentation with cross-references
- [Related Components](#key-types) - Each component documentation includes links to related components

## Key Types

### Core Interfaces
Expand All @@ -40,24 +48,46 @@ Each type is documented with:

- [AggregateRoot](types/aggregate-root.md) - Base class for domain aggregates
- [EventRecorder](types/event-recorder.md) - Utility for recording events
- [ReadModelBase](types/read-model-base.md) - Base class for read models in CQRS architecture

### Message Types

- [IMessage](types/imessage.md) - Base interface for messages
- [ICommand](types/icommand.md) - Interface for commands
- [IEvent](types/ievent.md) - Interface for events
- [ICorrelatedMessage](types/icorrelated-message.md) - Interface for correlated messages
- [Command](types/command.md) - Base class for command messages
- [Event](types/event.md) - Base class for event messages

### Utilities

- [MessageBuilder](types/message-builder.md) - Factory for creating correlated messages

### Repositories

- [StreamStoreRepository](types/stream-store-repository.md) - Implementation of IRepository
- [CorrelatedStreamStoreRepository](types/correlated-stream-store-repository.md) - Implementation of ICorrelatedRepository
- [IReadModelRepository](types/iread-model-repository.md) - Interface for read model repositories

### Event Store

- [IStreamStoreConnection](types/istream-store-connection.md) - Interface for event store connections
- [StreamStoreConnection](types/stream-store-connection.md) - Implementation of IStreamStoreConnection

### CQRS Components

- [Query Handling](types/query-handling.md) - Patterns and best practices for handling queries
- [Event Subscription](types/event-subscription.md) - Patterns for subscribing to and processing events

### Design Patterns

- [Event Sourcing Patterns](patterns/event-sourcing-patterns.md) - Patterns and best practices for event sourcing
- [Saga Implementation Patterns](patterns/saga-implementation-patterns.md) - Patterns for implementing sagas and process managers
- [Error Handling Patterns](patterns/error-handling-patterns.md) - Patterns for error handling and recovery
- [Testing Patterns](patterns/testing-patterns.md) - Patterns for testing event-sourced systems
- [Infrastructure Setup](patterns/infrastructure-setup.md) - Comprehensive guide for setting up event-sourced infrastructure
- [Performance Considerations](patterns/performance-considerations.md) - Optimization techniques for event-sourced systems

## Namespaces

The Reactive Domain library is organized into the following namespaces:
Expand Down
Loading