# Müşteri API Hareketleri -> dEngage
###### tags:`Taner Şimsek`,`topic`,`worker`,`dengage`
```plantuml
@startuml
rectangle "Müşteri Servis Hareketlerinin Veri Akış Mimarisi" {
component logstash << RabbitMQ >> [
Servis çağrı bilgilerinin toparlamak için
]
database topic << Kafka >> [
Servis çağrı kayıtları
]
component workerupdater <<bbt.worker.banking-api.dEngage>> [
Servis çağrı kayıtlarını dEngage tarafına aktarır.
]
component dengage << dEngage >> [
Star şema üzerinde servis çağrılanı tutar ve kampanya kurgusunda kullanır.
]
}
logstash --> topic
topic --> workerupdater
workerupdater --> dengage
@enduml
```
:::warning
* RabbitMQ de bir queue daha oluşturarak aktarım yapılabilir.
* https://docs.confluent.io/kafka-connect-rabbitmq-source/current/overview.html
:::
#### Kayıt Deseni
Her bir log kaydında bulunacak ve aktarılacak alanlar;
* **RequestTime**: API çağırma zamanı olarak aktarılacaktır.
* **CustomerId**: Müşteri TCKN bilgisi
* **CustomerNo**: Temel bankacılıkta bulunan müşteri bilgisi
* **ClientId**: Kullanan uygulama bilgisi *(Text)*
* **HttpMethod**: Çağrılan servisin method tipi bilgisi
* **HttpCode**: Çağrılan servisin response code bilgisi
* **UpStreamPathTemplate**: Çağrılan servisin url bilgisi
* **RouteData**: Route üzerinden bind edilen data *(JSON/Text)*
* **RequestQueryString**: Query üzerinden gönderilen data *(JSON/Text)*
* **RequestData**: Request body üzerinden gönderilen data *(JSON/Text)*
* **ResponseData**: Response body olarak dönen data *(JSON/Text)*
#### Aktarım Kuralları
* Personel hareketleri **aktarılmayacak**.
* Personel bilgisi uygulama ayağa kalktığında pusuladan çekip cache kontrol eder.
* Cache yenilenme **6 saat** den uzun olamaz.
* Yönetim kurulu üyeleri gibi yan çalışanlar tam olarak anlaşılmalı.
* Sadece izin verilen UpStreamPathTemplate akışlarına izin verilecek.
* Bir configürasyondan alacak şekilde configüre edilmeli.