# Aggregate: Agregat

Agregat to kluczowy element architektury DDD (Domain-Driven Design). Ogranicza dostęp do swojego stanu i definiuje zestaw operacji, które mogą być wykonywane na tych danych. Agregaty mają jasno określone granice i są odizolowane od innych agregatów.

<figure><img src="https://1285897863-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeoX2JfVQ83NM9EXvxdOF%2Fuploads%2FlpJWSnrj8wow4Bn429sJ%2FScreenshot%202023-06-01%20104557.png?alt=media&#x26;token=7a8b42be-1339-4f12-b11f-bd5db1aaae00" alt=""><figcaption></figcaption></figure>

<figure><img src="https://1285897863-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeoX2JfVQ83NM9EXvxdOF%2Fuploads%2FKWScxNdjnRcVdJzQoFf4%2FScreenshot%202023-06-01%20104743.png?alt=media&#x26;token=ff6db2c7-8d87-4d19-808a-53ea6bd49f89" alt=""><figcaption></figcaption></figure>

W powyższym modelu mamy Agregat jako główną jednostkę biznesową w kontekście rejestracji Karty. Agregat składa się z kilku elementów:

1. **Karta:** Reprezentuje kartę płatniczą. Ma swoją tożsamość i stan, który może ulegać zmianom w procesie składania zamówienia.
2. **Klient:** Reprezentuje klienta, który rejestruje kartę. Klient ma swoją tożsamość i może mieć powiązane z nim informacje, takie jak imię, nazwisko, adres, dane kontaktowe itp.\
   \\

Agregat "Cards" jest odpowiedzialny za zarządzanie i kontrolę tych elementów w obrębie rejestracji karty. Po pomyślnej rejestracji karty generowane jest Domain Event "Zarejestrowano Kartę", który może być wykorzystany do komunikacji z innymi częściami systemu lub do wywołania innych procesów.

Modelowanie Aggregatu pozwala na skupienie się na konkretnej części domeny i zarządzanie jej stanem oraz zachowaniem w trakcie składania zamówienia w sklepie internetowym.

<figure><img src="https://1285897863-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FeoX2JfVQ83NM9EXvxdOF%2Fuploads%2FlLERPIwTtMbAS6rlQ6iI%2FScreenshot%202023-06-01%20104756.png?alt=media&#x26;token=2a3be690-2144-4957-ab20-cbd38b34d355" alt=""><figcaption></figcaption></figure>
