{"id":3548,"date":"2025-08-27T15:19:00","date_gmt":"2025-08-27T12:19:00","guid":{"rendered":"https:\/\/www.bircloud.com\/cloud\/index.php\/2025\/08\/27\/kubernetes-keda-olay-gudumlu-uygulama-olceklendirme-ileri-konfigurasyon\/"},"modified":"2026-05-02T17:52:47","modified_gmt":"2026-05-02T14:52:47","slug":"kubernetes-keda-olay-gudumlu-uygulama-olceklendirme-ileri-konfigurasyon","status":"publish","type":"post","link":"https:\/\/www.bircloud.com\/cloud\/index.php\/2025\/08\/27\/kubernetes-keda-olay-gudumlu-uygulama-olceklendirme-ileri-konfigurasyon\/","title":{"rendered":"Kubernetes&#8217;te KEDA ile Olay G\u00fcd\u00fcml\u00fc Uygulama \u00d6l\u00e7eklendirme: \u0130leri D\u00fczey Konfig\u00fcrasyon ve Optimizasyon"},"content":{"rendered":"<p class=\"bircloud-reading-time\">\ud83d\udcd6 <strong>6 dakika<\/strong> okuma s\u00fcresi<\/p>\n<div class=\"bircloud-toc\">\n<h2>\ud83d\udccb \u0130\u00e7indekiler<\/h2>\n<ul>\n<li><a href=\"#section-1\">Giri\u015f<\/a><\/li>\n<li><a href=\"#section-2\">KEDA Nedir?<\/a><\/li>\n<li><a href=\"#section-3\">KEDA&#8217;n\u0131n Avantajlar\u0131<\/a><\/li>\n<li><a href=\"#section-4\">Kullan\u0131m Senaryolar\u0131<\/a><\/li>\n<li><a href=\"#section-5\">KEDA Kurulumu ve Ba\u015flang\u0131\u00e7<\/a><\/li>\n<li><a href=\"#section-6\">\u0130leri D\u00fczey Konfig\u00fcrasyon ve Optimizasyon<\/a><\/li>\n<li><a href=\"#section-7\">BirCloud Perspektifi<\/a><\/li>\n<li><a href=\"#section-8\">Sonu\u00e7<\/a><\/li>\n<\/ul>\n<\/div>\n<h2 id=\"section-1\">Giri\u015f<\/h2>\n<p>Kubernetes, modern uygulama geli\u015ftirme ve da\u011f\u0131t\u0131m\u0131n\u0131n temel ta\u015f\u0131 haline geldi. Ancak, Kubernetes&#8217;in sundu\u011fu kaynak y\u00f6netimi ve \u00f6l\u00e7eklendirme yetenekleri, uygulamalar\u0131n olay g\u00fcd\u00fcml\u00fc (event-driven) mimarilerle entegre edilmesiyle daha da g\u00fc\u00e7lendirilebilir. \u0130\u015fte bu noktada KEDA (Kubernetes Event-driven Autoscaling) devreye giriyor. KEDA, Kubernetes \u00fczerindeki uygulamalar\u0131n, \u00e7e\u015fitli olay kaynaklar\u0131na (message queue, veritaban\u0131, vb.) tepki vererek otomatik olarak \u00f6l\u00e7eklenmesini sa\u011flayan a\u00e7\u0131k kaynakl\u0131 bir projedir. Bu yaz\u0131da, KEDA&#8217;n\u0131n ne oldu\u011funu, avantajlar\u0131n\u0131, kullan\u0131m senaryolar\u0131n\u0131 ve ileri d\u00fczey konfig\u00fcrasyon tekniklerini derinlemesine inceleyece\u011fiz. Ayr\u0131ca, BirCloud&#8217;un bu konudaki uzmanl\u0131\u011f\u0131ndan ve sundu\u011fu \u00e7\u00f6z\u00fcmlerden bahsedece\u011fiz.<\/p>\n<h2 id=\"section-2\">KEDA Nedir?<\/h2>\n<p>KEDA, Kubernetes ortam\u0131nda \u00e7al\u0131\u015fan uygulamalar\u0131n otomatik \u00f6l\u00e7eklendirilmesini sa\u011flayan bir olay g\u00fcd\u00fcml\u00fc autoscaling \u00e7\u00f6z\u00fcm\u00fcd\u00fcr. Geleneksel Kubernetes Horizontal Pod Autoscaler (HPA), CPU veya bellek kullan\u0131m\u0131na g\u00f6re \u00f6l\u00e7eklendirme yaparken, KEDA \u00e7e\u015fitli harici olay kaynaklar\u0131ndan gelen metrikleri kullanarak \u00f6l\u00e7eklendirme kararlar\u0131 al\u0131r. Bu, uygulamalar\u0131n ger\u00e7ek zamanl\u0131 olarak i\u015f y\u00fck\u00fcne g\u00f6re dinamik olarak \u00f6l\u00e7eklenmesini sa\u011flar. KEDA, Kubernetes HPA&#8217;y\u0131 geni\u015fleterek, daha esnek ve olay odakl\u0131 bir \u00f6l\u00e7eklendirme yetene\u011fi sunar.<\/p>\n<h2 id=\"section-3\">KEDA&#8217;n\u0131n Avantajlar\u0131<\/h2>\n<ul>\n<li><b>Olay G\u00fcd\u00fcml\u00fc \u00d6l\u00e7eklendirme:<\/b> KEDA, uygulamalar\u0131n yaln\u0131zca ihtiya\u00e7 duyuldu\u011funda \u00f6l\u00e7eklenmesini sa\u011flayarak kaynak kullan\u0131m\u0131n\u0131 optimize eder.<\/li>\n<li><b>\u00c7e\u015fitli Olay Kaynaklar\u0131 Deste\u011fi:<\/b> KEDA, Apache Kafka, RabbitMQ, Azure Service Bus, AWS SQS gibi bir\u00e7ok pop\u00fcler olay kayna\u011f\u0131n\u0131 destekler.<\/li>\n<li><b>Kolay Entegrasyon:<\/b> KEDA, mevcut Kubernetes altyap\u0131s\u0131na kolayca entegre edilebilir ve kurulumu basittir.<\/li>\n<li><b>Maliyet Optimizasyonu:<\/b> Uygulamalar\u0131n yaln\u0131zca aktif olarak i\u015f y\u00fck\u00fc i\u015fledi\u011fi zamanlarda \u00f6l\u00e7eklenmesi, bulut kaynaklar\u0131 i\u00e7in \u00f6nemli maliyet tasarrufu sa\u011flar.<\/li>\n<li><b>Geli\u015fmi\u015f \u0130zlenebilirlik:<\/b> KEDA, \u00f6l\u00e7eklendirme metriklerini ve olay kaynaklar\u0131n\u0131 izlemek i\u00e7in Prometheus ve Grafana gibi ara\u00e7larla entegre edilebilir. <a href=\"https:\/\/www.bircloud.com\/cloud\/index.php\/2025\/11\/13\/prometheus-proaktif-izleme-anomali-tespiti\/\">Prometheus ile Proaktif \u0130zleme ve Anomali Tespiti: BirCloud ile Bulut Ortam\u0131n\u0131z\u0131 G\u00fc\u00e7lendirin<\/a> yaz\u0131m\u0131zda bu konuda daha fazla bilgi bulabilirsiniz.<\/li>\n<\/ul>\n<h2 id=\"section-4\">Kullan\u0131m Senaryolar\u0131<\/h2>\n<p>KEDA, \u00e7e\u015fitli uygulama senaryolar\u0131nda kullan\u0131labilir. \u0130\u015fte baz\u0131 \u00f6rnekler:<\/p>\n<ul>\n<li><b>Mesaj Kuyru\u011fu \u0130\u015fleme:<\/b> Bir mesaj kuyru\u011fundan (\u00f6rne\u011fin, RabbitMQ veya Kafka) gelen mesajlar\u0131 i\u015fleyen uygulamalar, KEDA ile kuyruktaki mesaj say\u0131s\u0131na g\u00f6re otomatik olarak \u00f6l\u00e7eklenebilir.<\/li>\n<li><b>Veritaban\u0131 \u0130\u015flemleri:<\/b> Veritaban\u0131na yap\u0131lan sorgu say\u0131s\u0131na veya veritaban\u0131 y\u00fck\u00fcne g\u00f6re uygulamalar \u00f6l\u00e7eklenebilir. <a href=\"https:\/\/www.bircloud.com\/cloud\/index.php\/2025\/12\/24\/tidb-dagitik-olceklenir-htap-veritabani\/\">TiDB: Da\u011f\u0131t\u0131k ve \u00d6l\u00e7eklenebilir HTAP Veritaban\u0131 ile Veri Y\u00f6netiminde Yeni Bir \u00c7a\u011f<\/a> yaz\u0131m\u0131z, veritaban\u0131 optimizasyonu konusunda size yard\u0131mc\u0131 olabilir.<\/li>\n<li><b>Zamanlanm\u0131\u015f \u0130\u015flemler:<\/b> Belirli zamanlarda veya belirli aral\u0131klarla \u00e7al\u0131\u015fan uygulamalar, KEDA ile yaln\u0131zca ihtiya\u00e7 duyuldu\u011funda \u00f6l\u00e7eklenebilir.<\/li>\n<li><b>IoT Uygulamalar\u0131:<\/b> IoT cihazlar\u0131ndan gelen verileri i\u015fleyen uygulamalar, KEDA ile veri ak\u0131\u015f\u0131na g\u00f6re dinamik olarak \u00f6l\u00e7eklenebilir.<\/li>\n<\/ul>\n<h2 id=\"section-5\">KEDA Kurulumu ve Ba\u015flang\u0131\u00e7<\/h2>\n<p>KEDA&#8217;n\u0131n kurulumu olduk\u00e7a basittir. A\u015fa\u011f\u0131daki ad\u0131mlar\u0131 izleyerek KEDA&#8217;y\u0131 Kubernetes k\u00fcmenize kurabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">\n# KEDA namespace'ini olu\u015ftur\nkubectl create namespace keda\n\n# KEDA'y\u0131 kur\nkubectl apply -f https:\/\/github.com\/kedacore\/keda\/releases\/latest\/download\/keda-2.12.0.yaml\n<\/code><\/pre>\n<p>Kurulum tamamland\u0131ktan sonra, bir `ScaledObject` olu\u015fturarak uygulaman\u0131z\u0131n nas\u0131l \u00f6l\u00e7eklenece\u011fini tan\u0131mlayabilirsiniz. \u0130\u015fte bir \u00f6rnek `ScaledObject` tan\u0131m\u0131:<\/p>\n<pre><code class=\"language-yaml\">\napiVersion: keda.sh\/v1alpha1\nkind: ScaledObject\nmetadata:\n  name: rabbitmq-scaledobject\n  namespace: default\nspec:\n  scaleTargetRef:\n    name: my-app\n  triggers:\n  - type: rabbitmq\n    metadata:\n      host: amqp:\/\/user:password@rabbitmq-service:5672\n      queueName: my-queue\n      queueLength: '5'\n<\/code><\/pre>\n<p>Bu `ScaledObject`, `my-app` adl\u0131 bir Deployment&#8217;\u0131, `my-queue` adl\u0131 RabbitMQ kuyru\u011fundaki mesaj say\u0131s\u0131na g\u00f6re \u00f6l\u00e7eklendirecektir. Kuyruktaki mesaj say\u0131s\u0131 5&#8217;i a\u015ft\u0131\u011f\u0131nda, uygulama otomatik olarak \u00f6l\u00e7eklenecektir.<\/p>\n<h2 id=\"section-6\">\u0130leri D\u00fczey Konfig\u00fcrasyon ve Optimizasyon<\/h2>\n<p>KEDA, temel \u00f6l\u00e7eklendirme senaryolar\u0131n\u0131n yan\u0131 s\u0131ra, ileri d\u00fczey konfig\u00fcrasyon se\u00e7enekleri de sunar. \u0130\u015fte baz\u0131 \u00f6rnekler:<\/p>\n<ul>\n<li><b>Polling Interval:<\/b> KEDA&#8217;n\u0131n olay kayna\u011f\u0131n\u0131 ne s\u0131kl\u0131kla kontrol edece\u011fini belirler. Daha s\u0131k kontrol, daha h\u0131zl\u0131 tepki s\u00fcreleri sa\u011flar, ancak daha fazla kaynak t\u00fcketebilir.<\/li>\n<li><b>Cooldown Period:<\/b> \u00d6l\u00e7eklendirme i\u015flemlerinden sonra, bir sonraki \u00f6l\u00e7eklendirme i\u015flemine kadar ge\u00e7ecek s\u00fcreyi belirler. Bu, gereksiz \u00f6l\u00e7eklendirme i\u015flemlerini \u00f6nler.<\/li>\n<li><b>Min\/Max Replicas:<\/b> Uygulaman\u0131n minimum ve maksimum replica say\u0131s\u0131n\u0131 belirler. Bu, kaynak kullan\u0131m\u0131n\u0131 kontrol alt\u0131nda tutar.<\/li>\n<li><b>Advanced Triggers:<\/b> KEDA, \u00f6zel metrikler ve form\u00fcller kullanarak \u00f6l\u00e7eklendirme yapman\u0131z\u0131 sa\u011flayan geli\u015fmi\u015f tetikleyiciler sunar.<\/li>\n<\/ul>\n<h2 id=\"section-7\">BirCloud Perspektifi<\/h2>\n<p>BirCloud olarak, m\u00fc\u015fterilerimize Kubernetes ve olay g\u00fcd\u00fcml\u00fc mimariler konusunda u\u00e7tan uca \u00e7\u00f6z\u00fcmler sunuyoruz. KEDA, Kubernetes ortam\u0131nda \u00e7al\u0131\u015fan uygulamalar\u0131n \u00f6l\u00e7eklendirilmesi i\u00e7in g\u00fc\u00e7l\u00fc bir ara\u00e7t\u0131r ve m\u00fc\u015fterilerimizin bulut kaynaklar\u0131n\u0131 daha verimli kullanmalar\u0131na yard\u0131mc\u0131 olur. BirCloud&#8217;un uzman ekibi, KEDA&#8217;n\u0131n kurulumu, konfig\u00fcrasyonu ve optimizasyonu konusunda size destek olabilir. Ayr\u0131ca, <a href=\"https:\/\/www.bircloud.com\/cloud\/index.php\/2026\/02\/03\/modern-savunmanin-temeli-isletmenizi-birsiem-ile-nasil-guclendirirsiniz\/\">Modern Savunman\u0131n Temeli: \u0130\u015fletmenizi BirSIEM ile Nas\u0131l G\u00fc\u00e7lendirirsiniz?<\/a> yaz\u0131m\u0131zda bahsetti\u011fimiz gibi, g\u00fcvenlik ve izleme \u00e7\u00f6z\u00fcmlerimizle KEDA entegrasyonunu sa\u011flayarak uygulaman\u0131z\u0131n g\u00fcvenli\u011fini ve performans\u0131n\u0131 art\u0131rabiliriz.<\/p>\n<p>BirCloud, KEDA ile entegre olabilen \u00e7e\u015fitli bulut hizmetleri sunmaktad\u0131r. \u00d6rne\u011fin, Apache Kafka tabanl\u0131 bir mesajla\u015fma altyap\u0131s\u0131 kurmak isterseniz, <a href=\"https:\/\/www.bircloud.com\/cloud\/index.php\/2025\/11\/12\/apache-kafka-streams-gercek-zamanli-veri-isleme\/\">Apache Kafka Streams ile Ger\u00e7ek Zamanl\u0131 Veri \u0130\u015fleme ve Analizi: BirCloud Uzmanl\u0131\u011f\u0131<\/a> blog yaz\u0131m\u0131z size yol g\u00f6sterebilir. Ayr\u0131ca, KEDA ile birlikte GitOps prensiplerini uygulayarak s\u00fcrekli da\u011f\u0131t\u0131m s\u00fcre\u00e7lerinizi otomatikle\u015ftirebilirsiniz. <a href=\"https:\/\/www.bircloud.com\/cloud\/index.php\/2025\/12\/27\/gitops-argo-cd-guvenli-olceklenir-surekli-dagitim\/\">GitOps ve Argo CD ile G\u00fcvenli ve \u00d6l\u00e7eklenebilir S\u00fcrekli Da\u011f\u0131t\u0131m<\/a> yaz\u0131m\u0131z, bu konuda size kapsaml\u0131 bir rehber sunmaktad\u0131r.<\/p>\n<h2 id=\"section-8\">Sonu\u00e7<\/h2>\n<p>KEDA, Kubernetes \u00fczerindeki olay g\u00fcd\u00fcml\u00fc uygulamalar\u0131n \u00f6l\u00e7eklendirilmesi i\u00e7in g\u00fc\u00e7l\u00fc ve esnek bir \u00e7\u00f6z\u00fcmd\u00fcr. \u00c7e\u015fitli olay kaynaklar\u0131 deste\u011fi, kolay entegrasyonu ve ileri d\u00fczey konfig\u00fcrasyon se\u00e7enekleri ile KEDA, bulut kaynaklar\u0131n\u0131z\u0131 daha verimli kullanman\u0131za ve maliyetlerinizi optimize etmenize yard\u0131mc\u0131 olur. BirCloud olarak, KEDA&#8217;n\u0131n kurulumu, konfig\u00fcrasyonu ve optimizasyonu konusunda size destek olmaktan mutluluk duyar\u0131z. Kubernetes ve olay g\u00fcd\u00fcml\u00fc mimarilerle ilgili daha fazla bilgi i\u00e7in bizimle ileti\u015fime ge\u00e7ebilirsiniz.<\/p>\n<div class=\"bircloud-faq\">\n<h2>\u2753 S\u0131k Sorulan Sorular<\/h2>\n<div class=\"faq-item\">\n<h3>KEDA nedir?<\/h3>\n<p>KEDA, Kubernetes \u00fczerinde \u00e7al\u0131\u015fan uygulamalar\u0131n, \u00e7e\u015fitli olay kaynaklar\u0131na tepki vererek otomatik olarak \u00f6l\u00e7eklenmesini sa\u011flayan a\u00e7\u0131k kaynakl\u0131 bir projedir.<\/p>\n<\/div>\n<div class=\"faq-item\">\n<h3>KEDA&#039;n\u0131n avantajlar\u0131 nelerdir?<\/h3>\n<p>Olay g\u00fcd\u00fcml\u00fc \u00f6l\u00e7eklendirme, \u00e7e\u015fitli olay kaynaklar\u0131 deste\u011fi, kolay entegrasyon, maliyet optimizasyonu ve geli\u015fmi\u015f izlenebilirlik gibi avantajlar\u0131 vard\u0131r.<\/p>\n<\/div>\n<div class=\"faq-item\">\n<h3>KEDA hangi olay kaynaklar\u0131n\u0131 destekler?<\/h3>\n<p>Apache Kafka, RabbitMQ, Azure Service Bus, AWS SQS gibi bir\u00e7ok pop\u00fcler olay kayna\u011f\u0131n\u0131 destekler.<\/p>\n<\/div>\n<div class=\"faq-item\">\n<h3>BirCloud KEDA konusunda nas\u0131l yard\u0131mc\u0131 olabilir?<\/h3>\n<p>BirCloud, KEDA&#039;n\u0131n kurulumu, konfig\u00fcrasyonu ve optimizasyonu konusunda uzman deste\u011fi sunar. Ayr\u0131ca, g\u00fcvenlik ve izleme \u00e7\u00f6z\u00fcmleriyle KEDA entegrasyonunu sa\u011flayarak uygulaman\u0131z\u0131n g\u00fcvenli\u011fini ve performans\u0131n\u0131 art\u0131rabilir.<\/p>\n<\/div>\n<div class=\"faq-item\">\n<h3>KEDA&#039;y\u0131 nas\u0131l kurabilirim?<\/h3>\n<p>KEDA&#039;y\u0131 Kubernetes k\u00fcmenize kurmak i\u00e7in kubectl komutlar\u0131n\u0131 kullanabilirsiniz. Kurulum ad\u0131mlar\u0131 blog yaz\u0131s\u0131nda detayl\u0131 olarak a\u00e7\u0131klanm\u0131\u015ft\u0131r.<\/p>\n<\/div>\n<\/div>\n<div class=\"bircloud-related-posts\">\n<h2>\ud83d\udcda \u0130lgili Yaz\u0131lar<\/h2>\n<ul>\n<li><a href=\"https:\/\/www.bircloud.com\/cloud\/index.php\/2025\/11\/06\/kubernetes-event-driven-uygulama-olceklendirme-keda\/\">Kubernetes&#039;te Event-Driven Uygulama \u00d6l\u00e7eklendirme: KEDA ile Dinamik Verimlilik<\/a><\/li>\n<li><a href=\"https:\/\/www.bircloud.com\/cloud\/index.php\/2025\/11\/11\/argo-cd-gitops-surekli-dagitim-stratejileri-en-iyi-uygulamalar\/\">Argo CD ile GitOps Tabanl\u0131 S\u00fcrekli Da\u011f\u0131t\u0131m Stratejileri: En \u0130yi Uygulamalar ve \u0130pu\u00e7lar\u0131<\/a><\/li>\n<li><a href=\"https:\/\/www.bircloud.com\/cloud\/index.php\/2025\/02\/13\/cloud-native-uygulamalar-ebpf-gozlemlenebilirlik-yeni-nesil-izleme-2\/\">Cloud Native Uygulamalar i\u00e7in eBPF ile G\u00fc\u00e7lendirilmi\u015f G\u00f6zlemlenebilirlik: Yeni Nesil \u0130zleme<\/a><\/li>\n<li><a href=\"https:\/\/www.bircloud.com\/cloud\/index.php\/2025\/09\/21\/envoy-proxy-service-mesh-trafik-yonetimi\/\">Envoy Proxy ile Geli\u015fmi\u015f Service Mesh Yetenekleri ve Trafik Y\u00f6netimi: BirCloud Uzmanl\u0131\u011f\u0131<\/a><\/li>\n<\/ul>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Kubernetes&#8217;te KEDA kullanarak olay g\u00fcd\u00fcml\u00fc uygulama \u00f6l\u00e7eklendirmesini derinlemesine inceleyin. \u0130leri d\u00fczey konfig\u00fcrasyon, optimizasyon teknikleri ve BirCloud uzmanl\u0131\u011f\u0131 ile performans\u0131 art\u0131r\u0131n.<\/p>\n","protected":false},"author":1,"featured_media":3547,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[160],"tags":[328,159,165,272,155,308],"class_list":["post-3548","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-bulut-bilisim","tag-autoscaling","tag-bircloud","tag-bulut-bilisim","tag-keda","tag-kubernetes","tag-olay-gudumlu-olceklendirme"],"_links":{"self":[{"href":"https:\/\/www.bircloud.com\/cloud\/index.php\/wp-json\/wp\/v2\/posts\/3548","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.bircloud.com\/cloud\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.bircloud.com\/cloud\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.bircloud.com\/cloud\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.bircloud.com\/cloud\/index.php\/wp-json\/wp\/v2\/comments?post=3548"}],"version-history":[{"count":1,"href":"https:\/\/www.bircloud.com\/cloud\/index.php\/wp-json\/wp\/v2\/posts\/3548\/revisions"}],"predecessor-version":[{"id":3549,"href":"https:\/\/www.bircloud.com\/cloud\/index.php\/wp-json\/wp\/v2\/posts\/3548\/revisions\/3549"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.bircloud.com\/cloud\/index.php\/wp-json\/wp\/v2\/media\/3547"}],"wp:attachment":[{"href":"https:\/\/www.bircloud.com\/cloud\/index.php\/wp-json\/wp\/v2\/media?parent=3548"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.bircloud.com\/cloud\/index.php\/wp-json\/wp\/v2\/categories?post=3548"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.bircloud.com\/cloud\/index.php\/wp-json\/wp\/v2\/tags?post=3548"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}