# Repository Pattern

> Repository Pattern in the Mobile Action Pro course.

- URL: https://dantech.academy/en/courses/kotlin-accelerator/engineer-builder/06-clean-architecture/lesson-05-repository-pattern
- Course: [Mobile Action Pro](https://dantech.academy/en/courses/kotlin-accelerator.md)
- Module: Clean Architecture in Depth
- Duration: 25 min
- Difficulty: intermediate
- Access: Enrolled students
- Tiếng Việt: https://dantech.academy/courses/kotlin-accelerator/engineer-builder/06-clean-architecture/lesson-05-repository-pattern.md

## Objectives

- Design a repository interface that speaks in domain models and DomainResult
- Keep table names, row DTOs, dispatchers and error handling in the implementation in :data
- Swap the data source by changing one binding line

## In this lesson

1. Lesson Goal
2. Part 1: What A Repository Solves
3. Part 2: The Interface Speaks The Domain's Language
4. Part 3: The Implementation Keeps The Details
5. Part 4: One Interface, Many Sources
6. Practice Exercise
7. Code Reading Path
8. Signs To Avoid
9. References
10. Key Points

## Study with an AI agent

The full lesson is for students of this course. Students open the lesson on the web and press **Markdown** to copy all of it, then paste it into Claude, ChatGPT, Cursor or whichever agent you use. Faster: mint a token at `/profile/ai-agents` and your agent reads lessons over MCP.

- [Join the course](https://dantech.academy/en/kotlin-accelerator/checkout)

---

- Previous lesson: [Interface-Based Design](https://dantech.academy/en/courses/kotlin-accelerator/engineer-builder/06-clean-architecture/lesson-04-interface-based-design.md)
- Next lesson: [UseCase Pattern](https://dantech.academy/en/courses/kotlin-accelerator/engineer-builder/06-clean-architecture/lesson-06-usecase-pattern.md)
