Skip to content
Protean
Message DB
proteanhq/protean
Protean
Getting Started
Guides
Reference
Concepts
Patterns & Recipes
Glossary
Community
Protean
proteanhq/protean
Protean
Protean
Start Here
Philosophy & Design Principles
Contents
How Do I...?
Getting Started
Getting Started
Installation
Hello, Protean!
Quickstart
Tutorial
Tutorial
Part I - Building the Domain
Part I - Building the Domain
1. Your First Aggregate
2. Rich Fields and Value Objects
3. Entities and Associations
4. Business Rules
Part II - Making It Event-Driven
Part II - Making It Event-Driven
5. Commands and Handlers
6. Events and Reactions
Part III - Read Models and Persistence
Part III - Read Models and Persistence
7. Projections
8. Connecting a Real Database
Part IV - Testing
Part IV - Testing
9. Testing Your Domain
10. What Comes Next
Guides
Guides
Choose a Path
Choose a Path
Domain-Driven Design with Protean
CQRS with Protean
Event Sourcing with Protean
Set Up the Domain
Set Up the Domain
Register elements
Initialize the domain
Activate the domain
When to compose
Model Your Domain
Model Your Domain
Aggregates
Entities
Value Objects
Expressing Relationships
Events
Deciding Between Elements
Add Rules and Behavior
Add Rules and Behavior
Basic Validations
Invariants
Mutating Aggregates
Raising Events
Domain Services
Change State
Change State
Application Services
Commands
Command Handlers
Repositories
Persist Aggregates
Retrieve Aggregates
Temporal Queries
Unit of Work
React to Changes
React to Changes
Event Handlers
Process Managers
Managing Projections
Subscribers
Event Upcasting
Expose Your Domain
Expose Your Domain
Endpoint Tests
Run the Server
Run the Server
Test Your Application
Test Your Application
Domain Model Tests
Application Tests
Event Sourcing Tests
Integration Tests
Fixtures and Patterns
Reference
Reference
Domain Elements
Domain Elements
Decorators
Object Model
Identity
Fields
Fields
Defining fields
Simple Fields
Container Fields
Association Fields
Common Arguments
Configuration
Configuration
CLI
CLI
Project
Project
protean new
Domain Discovery
protean shell
protean docs
Runtime
Runtime
protean server
protean observatory
Data
Data
protean db
protean events
protean snapshot
protean projection
Server
Server
Subscription Types
Subscription Configuration
Multi-Worker Mode
Observability
Adapters
Adapters
Database
Database
PostgreSQL
Elasticsearch
Brokers
Brokers
Inline Broker
Redis Stream Broker
Redis PubSub Broker
Custom Brokers
Caches
Caches
Redis
Event Stores
Event Stores
Message DB
Type Checking
Type Checking
Testing
Testing
Pytest Plugin
Migration
Migration
Migrating to 0.15
Concepts
Concepts
Philosophy & Principles
Philosophy & Principles
Foundations
Foundations
Ubiquitous Language
Bounded Contexts
Analysis Model
Identity
Invariants
Changing State
Streams
Architecture Patterns
Architecture Patterns
DDD
CQRS
Event Sourcing
Choosing Between Patterns
Building Blocks
Building Blocks
Aggregates
Entities
Value Objects
Domain Services
Events
Commands
Command Handlers
Event Handlers
Application Services
Repositories
Subscribers
Projections
Projectors
Process Managers
Async Processing
Async Processing
Engine Architecture
Subscriptions
Outbox Pattern
Priority Lanes
Stream Categories
Ports & Adapters
Ports & Adapters
Internals
Internals
Field system
Shadow fields
Query system
Event Sourcing Internals
Event Upcasting Internals
Patterns & Recipes
Patterns & Recipes
Aggregate Design
Aggregate Design
Design Small Aggregates
One Aggregate Per Transaction
Encapsulate State Changes in Named Methods
Replace Primitives with Value Objects
Event-Driven Patterns
Event-Driven Patterns
Design Events for Consumers
Idempotent Event Handlers
Event Versioning and Evolution
Command Idempotency
Coordinating Long-Running Processes
Architecture & Quality
Architecture & Quality
Organize by Domain Concept
Validation Layering
Thin Handlers, Rich Domain
Testing Domain Logic in Isolation
Identity & Communication
Identity & Communication
Creating Identities Early
Connecting Concepts Across Bounded Contexts
Consuming Events from Other Domains
Sharing Event Classes Across Domains
Testing & Infrastructure
Testing & Infrastructure
Dual-Mode Testing with Memory and Real Adapters
Setting Up and Tearing Down Databases for Tests
Running Migrations Without Blocking Production
Glossary
Community
Community
Quality Report
Setting up Protean locally
Testing Protean
Building Adapters
Reference
Adapters
Event Stores
Message DB
Back to top