DDD: Domain Driven Design
What is a repository?
A repository is a persistence abstraction layer that sits between your business logic and your data layer.
What is an aggregate?
An aggregate is a object that contains related entities and value objects. Basically it's a composite object that contains related objects.
Where are your Repo's best placed in your App architecture?
Database -> ORM -> Repository -> Business Logic
What is an aggregate root?
It is the main object. If you are building a CSV builder system the CSV may be your aggregate root. It is comprised of value objects like write / read objects and other stuff.
How should a repository behave?
It should act as a simple in-memory store yet delegate it's persistence to the appropriate layer behind the scenes.
What is a bounded context?
The scope of responsibility and reference in which an object exists. Think of it as a namespace. You may have a Models/Customer and also a Helpers/Customer. Both have specific bounded contexts.