# repository-pattern > Use repositories to encapsulate database queries and provide a clean interface for data access Use when designing system architecture. Architecture category skill. - Author: OmniaffixDave - Repository: OmniaffixDave/SessionGuardian - Version: 20260205125233 - Stars: 0 - Forks: 1 - Last Updated: 2026-02-08 - Source: https://github.com/OmniaffixDave/SessionGuardian - Web: https://mule.run/skillshub/@@OmniaffixDave/SessionGuardian~repository-pattern:20260205125233 --- --- name: repository-pattern description: Use repositories to encapsulate database queries and provide a clean interface for data access Use when designing system architecture. Architecture category skill. metadata: category: Architecture priority: medium is-built-in: true session-guardian-id: builtin_repository_pattern --- # Repository Pattern Use repositories to encapsulate database queries and provide a clean interface for data access. Repositories return domain objects, not database rows. The rest of the application works with repositories without knowing about the database. This enables: testing with in-memory repositories, switching databases, centralizing query logic. Define repository interfaces that the domain uses.