# DxMessaging Documentation Hub This is the documentation for DxMessaging, a type-safe messaging system for Unity. ## Visual Documentation Map ```mermaid flowchart TD Start[START HERE
Visual Guide
5 minutes] Start --> Quick[Quick Start
5 min] Start --> Getting[Getting Started
10 min] Start --> Overview[Overview
5 min] Quick --> Patterns[Patterns & Samples
Hands-on!] Getting --> Patterns Overview --> Patterns classDef primary stroke-width:3px class Start primary classDef success stroke-width:2px class Patterns success classDef secondary stroke-width:2px class Quick,Getting,Overview secondary ``` ## Table of Contents - [New to DxMessaging](#new-to-dxmessaging) - [Learning Path](#learning-path) - [Core Documentation](#core-documentation) - [Reference](#reference) - [Examples and Samples](#examples-and-samples) - [By Use Case](#by-use-case) - [Quick Start Path](#quick-start-path) --- ## New to DxMessaging **Never used a messaging system before?** Start here: 1. **[Mental Model](../concepts/mental-model.md)** - How to think about DxMessaging (10 min) 1. **[Visual Guide](visual-guide.md)** - Beginner-friendly visual introduction (5 min) 1. **[Getting Started Guide](getting-started.md)** - Walkthrough with code examples (10 min) 1. **[Quick Start](quick-start.md)** - Your first working message (5 min) 1. **[Overview](overview.md)** - What DxMessaging is and why it exists (5 min) ## Learning Path ### For Absolute Beginners (Never Used Messaging Before) 1. Read [Mental Model](../concepts/mental-model.md) (10 min) - Philosophy first! 1. Read [Visual Guide](visual-guide.md) (5 min) - Pictures and analogies! 1. Read [Getting Started](getting-started.md) (10 min) - Complete introduction 1. Try [Quick Start](quick-start.md) (5 min) - Hands-on tutorial 1. Understand [Message Types](../concepts/message-types.md) (10 min) - When to use what 1. Study [Common Patterns](../guides/patterns.md) (15 min) - Real examples ### For Advanced Users 1. Master [Interceptors & Ordering](../concepts/interceptors-and-ordering.md) 1. Explore [Listening Patterns](../concepts/listening-patterns.md) 1. Read [Design & Architecture](../architecture/design-and-architecture.md) 1. Review [Advanced Topics](../guides/advanced.md) ## Core Documentation ### Essentials - **[Visual Guide](visual-guide.md)** - Beginner-friendly visual introduction with pictures and analogies - **[Getting Started](getting-started.md)** - Complete beginner's guide with mental models - **[Overview](overview.md)** - What and why - **[Quick Start](quick-start.md)** - First message in 5 minutes - **[Message Types](../concepts/message-types.md)** - When to use Untargeted/Targeted/Broadcast - **[Comparisons](../architecture/comparisons.md)** - DxMessaging vs C# Events, UnityEvents, SendMessage ### Core Concepts - **[Interceptors & Ordering](../concepts/interceptors-and-ordering.md)** - Validate, transform, control execution - **[Listening Patterns](../concepts/listening-patterns.md)** - All the ways to receive messages - **[Targeting & Context](../concepts/targeting-and-context.md)** - GameObject vs Component - **[Patterns](../guides/patterns.md)** - Real-world usage patterns ### Unity Integration - **[Unity Integration](../guides/unity-integration.md)** - MessagingComponent, MessageAwareComponent - **[Diagnostics](../guides/diagnostics.md)** - Inspector tools, debugging, observability ### Architecture & Performance - **[Design & Architecture](../architecture/design-and-architecture.md)** - Internals, allocation behavior, and optimization choices - **[Performance Benchmarks](../architecture/performance.md)** - per-scope dispatch and library-comparison tables auto-generated by CI - **[Advanced](../guides/advanced.md)** - Lifecycles, safety, manual control ## Reference ### Quick Lookups - **[Glossary](../reference/glossary.md)** - All terms explained in plain English - **[Quick Reference](../reference/quick-reference.md)** - API cheat sheet - **[API Reference](../reference/reference.md)** - Complete API documentation - **[FAQ](../reference/faq.md)** - Common questions - **[Troubleshooting](../reference/troubleshooting.md)** - Solving common issues ### Tools & Utilities - **[Helpers](../reference/helpers.md)** - Source generators, attributes, extensions - **[Message Bus Providers](../advanced/message-bus-providers.md)** - Provider system and MessageBusProviderHandle for flexible bus configuration - **[Runtime Configuration](../advanced/runtime-configuration.md)** - Setting message buses at runtime, re-binding registrations - **[Registration Builders](../advanced/registration-builders.md)** - Fluent API for building message registrations - **[Emit Shorthands](../advanced/emit-shorthands.md)** - `Emit`/`EmitAt`/`EmitFrom` usage and pitfalls - **[String Messages](../advanced/string-messages.md)** - Prototyping and debugging - **[Compatibility](../reference/compatibility.md)** - Unity versions and render pipelines - **[Install](install.md)** - Installation guide ## Examples and Samples ### Unity Samples (Importable!) **Located in `Samples~/` directory** - Import via Unity Package Manager! - **[Mini Combat](https://github.com/Ambiguous-Interactive/DxMessaging/blob/master/Samples~/Mini%20Combat/README.md)** - Interactive combat demo with Heal/Damage messages - Perfect first example to understand message flow - Shows Targeted and Broadcast messages in action - Complete working scene you can play with - **[UI Buttons + Inspector](https://github.com/Ambiguous-Interactive/DxMessaging/blob/master/Samples~/UI%20Buttons%20%2B%20Inspector/README.md)** - Interactive diagnostics demo - See the Inspector diagnostics in action - Explore message history and handler registrations - Great for debugging and understanding the system ### Code Examples (In Docs) - **[End-to-End Example](../examples/end-to-end.md)** - Complete feature walkthrough - **[Scene Transitions Example](../examples/end-to-end-scene-transitions.md)** - Scene management pattern ### Real-World Patterns From [Common Patterns](../guides/patterns.md): - Scene-wide events (Untargeted) - Directed commands (Targeted) - Observability (Broadcast) - Validation with Interceptors - Analytics with Post-Processors - Local bus islands for testing ## By Use Case ### "I want to..." - **Decouple my systems** - Start with [Getting Started](getting-started.md) - **Replace C# events** - See [Comparisons](../architecture/comparisons.md) - **Send a command to one object** - Use [Targeted Messages](../concepts/message-types.md#targeted-messages) - **Broadcast an event** - Use [Broadcast Messages](../concepts/message-types.md#broadcast-messages) - **Notify globally** - Use [Untargeted Messages](../concepts/message-types.md#untargeted-messages) - **Validate messages before execution** - Learn [Interceptors](../concepts/interceptors-and-ordering.md) - **Track all damage/events** - See [Listening Without Context](../concepts/listening-patterns.md) - **Debug message flow** - Use [Diagnostics](../guides/diagnostics.md) - **Optimize performance** - Read [Performance Tips](../architecture/design-and-architecture.md#performance-optimizations) - **Isolate tests** - Create [Local Bus Islands](../guides/patterns.md#6-local-bus-islands) - **Use dependency injection** - [DxMessaging + Zenject](../integrations/zenject.md), [DxMessaging + VContainer](../integrations/vcontainer.md), [DxMessaging + Reflex](../integrations/reflex.md) - **Configure buses at runtime** - See [Runtime Configuration](../advanced/runtime-configuration.md) - **Use message bus providers** - Learn [Message Bus Providers](../advanced/message-bus-providers.md) ## Visual: Message Pipeline Every message flows through 3 stages: ```mermaid flowchart LR P[Producer] --> I[Interceptors
validate/mutate/cancel] I --> H[Handlers
main logic by priority] H --> PP[Post-Processors
analytics/logging] classDef neutral stroke-width:2px class P neutral classDef warning stroke-width:2px class I warning classDef primary stroke-width:2px class H primary classDef success stroke-width:2px class PP success ``` ## Learning Resources ### Must-Read Docs (In Order) 1. **[Getting Started](getting-started.md)** - Start here! (10 min) 1. **[Message Types](../concepts/message-types.md)** - Choose the right type (10 min) 1. **[Patterns](../guides/patterns.md)** - See real examples (15 min) 1. **[Diagnostics](../guides/diagnostics.md)** - Debug like a pro (10 min) 1. **[Design & Architecture](../architecture/design-and-architecture.md)** - Understand the internals (30 min) ### Feature-Specific - **Priority & Ordering** - [Interceptors & Ordering](../concepts/interceptors-and-ordering.md) - **Global Observers** - [Listening Patterns](../concepts/listening-patterns.md) - **Unity Lifecycle** - [Unity Integration](../guides/unity-integration.md) - **Performance** - [Design & Architecture](../architecture/design-and-architecture.md) ## Comparison Charts ### DxMessaging vs Alternatives From [Comparisons](../architecture/comparisons.md): | Feature | DxMessaging | C# Events | UnityEvents | Static Bus | | ---------------- | ----------- | --------- | ----------- | ---------- | | Decoupling | Full | Tight | Hidden | Yes | | Lifecycle Safety | Auto | Manual | Unity | Manual | | Execution Order | Priority | Random | Random | Random | | Observability | Built-in | No | No | No | | Performance | Zero-alloc | Good | Boxing | Good | ## Search by Topic ### Concepts - **Messages** - [Message Types](../concepts/message-types.md), [Getting Started](getting-started.md) - **Handlers** - [Listening Patterns](../concepts/listening-patterns.md), [Unity Integration](../guides/unity-integration.md) - **Lifecycle** - [Advanced](../guides/advanced.md), [Unity Integration](../guides/unity-integration.md) - **Performance** - [Design & Architecture](../architecture/design-and-architecture.md) - **Testing** - [Patterns](../guides/patterns.md#6-local-bus-islands), [Testing Guide](../guides/testing.md) ### Features - **Interceptors** - [Interceptors & Ordering](../concepts/interceptors-and-ordering.md) - **Post-Processors** - [Interceptors & Ordering](../concepts/interceptors-and-ordering.md) - **Priorities** - [Interceptors & Ordering](../concepts/interceptors-and-ordering.md) - **Global Accept-All** - [Listening Patterns](../concepts/listening-patterns.md) - **Diagnostics** - [Diagnostics](../guides/diagnostics.md) - **Local Buses** - [Design & Architecture](../architecture/design-and-architecture.md) ### Components - **MessageBus** - [Design & Architecture](../architecture/design-and-architecture.md#the-message-bus) - **MessageHandler** - [API Reference](../reference/reference.md) - **MessageRegistrationToken** - [Unity Integration](../guides/unity-integration.md), [Advanced](../guides/advanced.md) - **MessageAwareComponent** - [Unity Integration](../guides/unity-integration.md), [Getting Started](getting-started.md) - **MessagingComponent** - [Unity Integration](../guides/unity-integration.md) ## Complete Document List ### Getting Started - [Visual Guide](visual-guide.md) - Perfect for beginners - [Getting Started Guide](getting-started.md) - [Overview](overview.md) - [Quick Start](quick-start.md) - [Install](install.md) ### Core Concepts - [Message Types](../concepts/message-types.md) - [Interceptors & Ordering](../concepts/interceptors-and-ordering.md) - [Listening Patterns](../concepts/listening-patterns.md) - [Targeting & Context](../concepts/targeting-and-context.md) ### Unity - [Unity Integration](../guides/unity-integration.md) - [Diagnostics](../guides/diagnostics.md) - [Patterns](../guides/patterns.md) ### Deep Dives - [Design & Architecture](../architecture/design-and-architecture.md) - [Advanced](../guides/advanced.md) - [Comparisons](../architecture/comparisons.md) ### Reference - [Quick Reference](../reference/quick-reference.md) - [API Reference](../reference/reference.md) - [Helpers](../reference/helpers.md) - [FAQ](../reference/faq.md) - [Troubleshooting](../reference/troubleshooting.md) ### Dependency Injection - [Runtime Configuration](../advanced/runtime-configuration.md) - Setting and overriding message buses, re-binding registrations - [Message Bus Providers](../advanced/message-bus-providers.md) - Provider system and MessageBusProviderHandle - [DxMessaging + Zenject](../integrations/zenject.md) - Zenject integration guide - [DxMessaging + VContainer](../integrations/vcontainer.md) - VContainer integration guide - [DxMessaging + Reflex](../integrations/reflex.md) - Reflex integration guide ### Miscellaneous - [String Messages](../advanced/string-messages.md) - [Compatibility](../reference/compatibility.md) - [End-to-End Example](../examples/end-to-end.md) - [Scene Transitions Example](../examples/end-to-end-scene-transitions.md) - [Mini Combat Sample](https://github.com/Ambiguous-Interactive/DxMessaging/blob/master/Samples~/Mini%20Combat/README.md) - [UI Buttons + Inspector Sample](https://github.com/Ambiguous-Interactive/DxMessaging/blob/master/Samples~/UI%20Buttons%20%2B%20Inspector/README.md) --- ## Quick Start Path **Absolute Beginner?** Follow this 40-minute path: 1. 10 min: [Mental Model](../concepts/mental-model.md) - Understand the philosophy first! 1. 5 min: [Visual Guide](visual-guide.md) - Pictures & analogies 1. 10 min: [Getting Started](getting-started.md) - Deep dive 1. 5 min: [Quick Start](quick-start.md) - Hands-on code 1. 10 min: Try a [Sample](https://github.com/Ambiguous-Interactive/DxMessaging/blob/master/Samples~/Mini%20Combat/README.md) - See it in action **Want to go deep?** Continue with: 1. 15 min: [Patterns](../guides/patterns.md) 1. 20 min: [Interceptors & Ordering](../concepts/interceptors-and-ordering.md) 1. 30 min: [Design & Architecture](../architecture/design-and-architecture.md) --- Need help? Check [FAQ](../reference/faq.md) or [Troubleshooting](../reference/troubleshooting.md).