# 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.