m09-domain

Models Java entities and value objects with attributes and relationships.

1.4k|110|Updated Jan 17, 2026
One-click install
npx skills add https://github.com/actionbook/rust-skills --skill m09-domain-actionbook
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: m09-domain
Source: https://github.com/actionbook/rust-skills/tree/main/skills/m09-domain
Command: npx skills add https://github.com/actionbook/rust-skills --skill m09-domain-actionbook

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This Skill provides structured guidance for modeling domain concepts in Rust, helping teams decide when to use Entities, Value Objects, Aggregates, and Repositories while aligning with domain-driven design principles.

Core Features & Use Cases

  • Domain concepts mapped to Rust patterns (Entity, Value Object, Aggregate, Repository, Domain Event)
  • Pattern templates and guidance for constructing safe ownership semantics
  • Use cases such as modeling a User as an Entity and an Email as a Value Object, or modeling an Order aggregate with child items

Quick Start

Model a simple domain: create a User as an Entity with an Id and an Email as a Value Object.

Frequently Asked Questions about m09-domain

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I model domain-driven design aggregates in Rust?

Domain-driven design aggregates in Rust are modeled using provided structural templates that group child entities and value objects while enforcing invariants and safe ownership semantics. Templates guide the construction of aggregate roots.

What is the best way to implement a value object in Rust?

A value object in Rust is best implemented by applying the Skill's value object pattern template, which structures immutable data and ensures safe ownership semantics without persistent identity.

Can I use Rust domain modeling patterns for FinTech or IoT applications?

Yes, Rust domain modeling patterns apply directly to FinTech or IoT real-world domains. The guidance addresses designing domain concepts like entities and repositories across varied Rust codebases to resolve modeling ambiguity.

How do I separate domain rules from persistence in Rust?

Separate domain rules from persistence in Rust by using the repository pattern template, which isolates domain logic and aggregate invariants from data storage concerns and ensures safe ownership.

When should I use an entity versus a value object in Rust?

Use an entity versus a value object in Rust based on identity needs: entities maintain persistent identity, while value objects are immutable and compared by value. The Skill provides templates to distinguish both.