advanced~2h
Command Interceptors and Validation
The Aggregate pattern put business-invariant checks inside the aggregate itself — but a command's basic shape, authorization, and audit trail shouldn't have to be re-coded inside every single aggregate. This module is where that cross-cutting work actually belongs.
Learning objectives
- Distinguish structural/shape validation of a command from business-invariant validation inside an aggregate
- Implement an Axon MessageDispatchInterceptor to reject malformed commands before they reach the Command Bus routing
- Implement a MessageHandlerInterceptor to run cross-cutting logic (logging, security) just before a handler executes
- Explain why authorization checks belong in an interceptor, not inside the aggregate's business logic
- Design an audit-logging interceptor without polluting every individual aggregate's command handlers
This is a Pro chapter
Sign in, then upgrade to Pro or Power to unlock this and the full Spring Ecosystem Mastery library.
Command Interceptors and Validation