Repository Pattern Guide
Abstract your data access layer behind repository interfaces that look like in-memory collections. Decouple business logic from persistence concerns and improve testability with easy-to-mock repositories.
Usage
Ask about implementing repositories for your data layer, combining repositories with unit of work, or testing with repository abstractions.
Examples
- "How do I implement a generic repository in TypeScript?"
- "Should I use repository pattern with an ORM like Drizzle?"
- "How do I combine repository pattern with unit of work?"
Guidelines
- Keep repository interfaces focused on the aggregate root
- Avoid exposing IQueryable or query builder objects through the repository
- Use the specification pattern for complex query criteria
- Generic repositories are useful but consider specific repositories for complex domains
- Repositories should return domain objects, not database entities