[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"me":3,"catalog:tr:data-engineer\u002Fst-kafka-broker-storage-replication":4,"config":191},null,{"field_key":5,"field_name":6,"seniority":7,"topic_key":8,"topic_name":9,"spec_key":7,"spec_name":7,"locale":10,"cell_total":11,"field_total":12,"seniorities":13,"topics":17,"specs":94,"samples":105},"data-engineer","Data Engineer","","st-kafka-broker-storage-replication","St Kafka Broker Storage Replication","tr",75,1950,[14,15,16],"junior","mid","senior",[18,21,24,27,30,33,36,39,42,45,48,51,54,57,60,63,64,67,70,73,76,79,82,85,88,91],{"key":19,"name":20,"count":11},"data-governance-lineage","Data Governance Lineage",{"key":22,"name":23,"count":11},"data-modeling-warehousing","Data Modeling Warehousing",{"key":25,"name":26,"count":11},"data-partitioning-scaling","Data Partitioning Scaling",{"key":28,"name":29,"count":11},"data-pipeline-design","Data Pipeline Design",{"key":31,"name":32,"count":11},"data-pipeline-orchestration","Data Pipeline Orchestration",{"key":34,"name":35,"count":11},"data-pipeline-reliability","Data Pipeline Reliability",{"key":37,"name":38,"count":11},"data-quality-validation","Data Quality Validation",{"key":40,"name":41,"count":11},"pe-airflow-scheduling-dependencies","Pe Airflow Scheduling Dependencies",{"key":43,"name":44,"count":11},"pe-dbt-models-materializations-tests","Pe Dbt Models Materializations Tests",{"key":46,"name":47,"count":11},"pe-file-formats-table-formats","Pe File Formats Table Formats",{"key":49,"name":50,"count":11},"pe-incremental-cdc-merge-mechanics","Pe Incremental Cdc Merge Mechanics",{"key":52,"name":53,"count":11},"pe-spark-api-semantics-udfs","Pe Spark Api Semantics Udfs",{"key":55,"name":56,"count":11},"pe-spark-execution-shuffle-partitions","Pe Spark Execution Shuffle Partitions",{"key":58,"name":59,"count":11},"st-flink-runtime-checkpointing-state","St Flink Runtime Checkpointing State",{"key":61,"name":62,"count":11},"st-flink-time-watermarks-windows","St Flink Time Watermarks Windows",{"key":8,"name":9,"count":11},{"key":65,"name":66,"count":11},"st-kafka-connect-schema-registry","St Kafka Connect Schema Registry",{"key":68,"name":69,"count":11},"st-kafka-producer-consumer-semantics","St Kafka Producer Consumer Semantics",{"key":71,"name":72,"count":11},"streaming-fundamentals","Streaming Fundamentals",{"key":74,"name":75,"count":11},"st-streaming-joins-tables","St Streaming Joins Tables",{"key":77,"name":78,"count":11},"wh-bigquery-execution-slots-cost","Wh Bigquery Execution Slots Cost",{"key":80,"name":81,"count":11},"wh-bigquery-storage-partitioning-clustering","Wh Bigquery Storage Partitioning Clustering",{"key":83,"name":84,"count":11},"wh-materialized-views-caching","Wh Materialized Views Caching",{"key":86,"name":87,"count":11},"wh-redshift-distribution-sort-vacuum","Wh Redshift Distribution Sort Vacuum",{"key":89,"name":90,"count":11},"wh-snowflake-compute-warehouses","Wh Snowflake Compute Warehouses",{"key":92,"name":93,"count":11},"wh-snowflake-storage-micropartitions","Wh Snowflake Storage Micropartitions",[95,99,102],{"key":96,"name":97,"count":98},"pipelines-etl","Pipelines \u002F ETL",450,{"key":100,"name":101,"count":98},"streaming","Streaming",{"key":103,"name":104,"count":98},"warehousing","Warehousing",[106,124,137,151,164,178],{"id":107,"topic":9,"difficulty":108,"body":109,"options":110,"correct_key":118,"explanation":123},"01a00b9b-8a17-7514-8f5f-f9955fa307c1",1,"Bir Kafka broker'ının diskinde tek bir partition fiziksel olarak nasıl saklanır?",[111,114,117,120],{"key":112,"text":113},"a","Veri hacminden bağımsız, sürekli büyüyen tek bir dosya olarak",{"key":115,"text":116},"b","Broker'ın yönettiği ilişkisel bir veritabanı tablosundaki satırlar olarak",{"key":118,"text":119},"c","Bir tanesi aktif olan bir log segment dosyaları dizisi olarak",{"key":121,"text":122},"d","Tamamen bellekte; diske yalnızca broker kapanışında yazılarak","Bir partition'ın log'u diskte segment dosyalarına bölünür. Aynı anda yalnızca bir segment (aktif segment) yeni append kabul eder; eski segment'ler kapatılır (roll edilir) ve silinene ya da compact edilene kadar salt-okunur kalır.",{"id":125,"topic":9,"difficulty":108,"body":126,"options":127,"correct_key":112,"explanation":136},"01a00b9b-8a19-75dd-90f0-f52b2afcaa5e","Kafka'yı bir partition'ın aktif log segment'ini roll etmeye (kapatıp yenisini başlatmaya) ne tetikler?",[128,130,132,134],{"key":112,"text":129},"`segment.bytes` boyutuna ulaşmak ya da `segment.ms` yaşına gelmek, hangisi önce olursa",{"key":115,"text":131},"Bir consumer group'un aktif segment'teki tüm okumaları bitirmesi",{"key":118,"text":133},"Broker'ın JVM'inin bir garbage collection döngüsü çalıştırması",{"key":121,"text":135},"Partition lider'inin başka bir broker'a taşınması","Segment roll etme yalnızca aktif segment'in boyutu (`segment.bytes`) ve yaşı (`segment.ms`) tarafından tetiklenir; hangi eşik önce dolarsa roll o an gerçekleşir. Consumer ilerlemesi ya da lider değişimi segment roll'unu tetiklemez.",{"id":138,"topic":9,"difficulty":139,"body":140,"options":141,"correct_key":115,"explanation":150},"01a00b9b-8a1a-7144-bc73-f043326c1163",3,"Bir topic-partition'da `segment.bytes=1073741824` (1 GiB) ve `segment.ms=604800000` (7 gün) ayarlı. Partition günde yaklaşık 50 MB veri alıyor. 20 günlük kesintisiz üretimden sonra aktif segment kabaca kaç kez roll edilmiştir ve her roll'u hangi eşik tetiklemiştir?",[142,144,146,148],{"key":112,"text":143},"Yaklaşık 20 roll, hepsini günlük dolan `segment.bytes` tetikler",{"key":115,"text":145},"2 roll; ikisini de `segment.ms` tetikler, boyut değil",{"key":118,"text":147},"Tam 1 roll, 20. günde `segment.bytes` tarafından tetiklenir",{"key":121,"text":149},"Sıfır roll, çünkü segment'ler yalnızca broker restart'ında roll olur","Günde 50 MB ile 7 günlük yazım yalnızca ~350 MB birikir, bu da 1 GiB'lık `segment.bytes` sınırının çok altındadır; bu yüzden önce `segment.ms` dolar. Roll'lar 7. ve 14. günlerde gerçekleşir; üçüncüsü 21. günde olur. Dolayısıyla 20 günde zaman eşiğinin tetiklediği 2 roll vardır.",{"id":152,"topic":9,"difficulty":108,"body":153,"options":154,"correct_key":121,"explanation":163},"01a00b9b-8a1b-71d1-8835-7208663056d3","Her Kafka log segment'i (`.log` dosyası) bir `.index` ve bir `.timeindex` dosyasıyla eşleştirilir. Bunlar ne için kullanılır?",[155,157,159,161],{"key":112,"text":156},"Partition'ın replika atamasını saklamak için",{"key":115,"text":158},"Consumer group'un commit edilmiş offset'lerini saklamak için",{"key":118,"text":160},"Segment'in sıkıştırılmış bir yedek kopyasını tutmak için",{"key":121,"text":162},"Offset\u002Fzaman damgalarını yaklaşık byte konumlarına eşlemek için","`.index` dosyası offset'leri byte konumlarına, `.timeindex` ise zaman damgalarını offset'lere seyrek (sparse) şekilde eşler. Kafka bunları hedef konuma yakın bir yere atlayıp ardından küçük bir aralığı taramak için kullanır; segment'i baştan okumaz.",{"id":165,"topic":9,"difficulty":166,"body":167,"options":168,"correct_key":112,"explanation":177},"01a00b9b-8a1b-77e6-8b3e-dbcfebbb17ce",2,"Bir topic'te `cleanup.policy=delete` ve `retention.ms=604800000` (7 gün) ayarlı. Bir log segment'i 8 gün önce kapatıldı (roll edildi) ve içindeki en yeni mesaj 7.5 gün yaşında. Daha yeni, hâlâ aktif olan bir segment ise yalnızca son birkaç saati tutuyor. Kapalı segment'e ne olur?",[169,171,173,175],{"key":112,"text":170},"Kapalı segment'in tamamı segment-bazlı silme için uygun hale gelir",{"key":115,"text":172},"Yalnızca 7 günden eski bireysel mesajlar kaldırılır",{"key":118,"text":174},"Aktif segment de eskiyene kadar hiçbir şey silinmez",{"key":121,"text":176},"Segment, her key için son değeri tutacak şekilde compact edilir","`cleanup.policy=delete` altında silme mesaj bazında değil, segment bazında çalışır. Kapalı bir segment'teki bütün mesajlar retention eşiğinden eski hale geldiğinde segment uygun olur ve sonraki bir retention kontrolünde seçilir; fiziksel dosya silme ayrıca gecikebilir. Aktif segment yazım kabul ederken uygun değildir.",{"id":179,"topic":9,"difficulty":166,"body":180,"options":181,"correct_key":115,"explanation":190},"01a00b9b-8a1e-73ae-9e27-39f61e70534e","Bir topic `cleanup.policy=compact` ile yapılandırılmış. Log compaction temelde ne yapar?",[182,184,186,188],{"key":112,"text":183},"Delete gibi, belirli bir yaşın üzerindeki her mesajı kaldırır",{"key":115,"text":185},"Her farklı mesaj key'i için en azından son değeri korur",{"key":118,"text":187},"Hiçbir kaydı silmeden payload'ları gzip\u002Fzstd ile sıkıştırır",{"key":121,"text":189},"Topic'in tüm partition'larını tek bir partition'da birleştirir","Compaction, zaman bazlı silme ya da payload sıkıştırma değil, key bazlı bir saklama biçimidir: log cleaner segment'leri yeniden yazarak her key için yalnızca en son kaydın (artı henüz temizlenmemiş yakın kayıtların) hayatta kalmasını sağlar; bu da topic'in güncel durumun bir changelog'u gibi davranmasına izin verir.",{"fields":192,"seniorities":408,"interview_shapes":409,"locales":414,"oauth":416,"question_count":419,"coach_enabled":420,"jd_match_enabled":420},[193,218,238,254,278,291,310,329,351,370,377,399],{"key":194,"name_tr":195,"name_en":195,"sort":108,"specializations":196},"backend","Backend",[197,200,203,206,209,212,215],{"key":198,"name":199,"field":194},"general","Genel",{"key":201,"name":202,"field":194},"go","Go",{"key":204,"name":205,"field":194},"python","Python",{"key":207,"name":208,"field":194},"java","Java",{"key":210,"name":211,"field":194},"csharp","C#\u002F.NET",{"key":213,"name":214,"field":194},"nodejs","Node.js",{"key":216,"name":217,"field":194},"php","PHP",{"key":219,"name_tr":220,"name_en":220,"sort":166,"specializations":221},"frontend","Frontend",[222,223,226,229,232,235],{"key":198,"name":199,"field":219},{"key":224,"name":225,"field":219},"javascript","JavaScript",{"key":227,"name":228,"field":219},"typescript","TypeScript",{"key":230,"name":231,"field":219},"react","React",{"key":233,"name":234,"field":219},"vue","Vue",{"key":236,"name":237,"field":219},"angular","Angular",{"key":239,"name_tr":240,"name_en":240,"sort":139,"specializations":241},"fullstack","Fullstack",[242,243,244,245,246,247,248,249,250,251,252,253],{"key":198,"name":199,"field":239},{"key":201,"name":202,"field":194},{"key":204,"name":205,"field":194},{"key":207,"name":208,"field":194},{"key":210,"name":211,"field":194},{"key":213,"name":214,"field":194},{"key":216,"name":217,"field":194},{"key":224,"name":225,"field":219},{"key":227,"name":228,"field":219},{"key":230,"name":231,"field":219},{"key":233,"name":234,"field":219},{"key":236,"name":237,"field":219},{"key":255,"name_tr":256,"name_en":256,"sort":257,"specializations":258},"devops-cloud","DevOps \u002F Cloud",4,[259,260,263,266,269,272,275],{"key":198,"name":199,"field":255},{"key":261,"name":262,"field":255},"aws","AWS",{"key":264,"name":265,"field":255},"gcp","GCP",{"key":267,"name":268,"field":255},"azure","Azure",{"key":270,"name":271,"field":255},"kubernetes","Kubernetes",{"key":273,"name":274,"field":255},"terraform","Terraform",{"key":276,"name":277,"field":255},"linux","Linux",{"key":279,"name_tr":280,"name_en":280,"sort":281,"specializations":282},"ai-engineer","AI Engineer",5,[283,284,285,288],{"key":198,"name":199,"field":279},{"key":204,"name":205,"field":279},{"key":286,"name":287,"field":279},"llm-rag","LLM\u002FRAG",{"key":289,"name":290,"field":279},"mlops","MLOps",{"key":292,"name_tr":293,"name_en":294,"sort":295,"specializations":296},"database","Veritabanı","Database",6,[297,298,301,304,307],{"key":198,"name":199,"field":292},{"key":299,"name":300,"field":292},"postgresql","PostgreSQL",{"key":302,"name":303,"field":292},"mysql","MySQL",{"key":305,"name":306,"field":292},"mongodb","MongoDB",{"key":308,"name":309,"field":292},"redis","Redis",{"key":311,"name_tr":312,"name_en":313,"sort":314,"specializations":315},"mobile","Mobil","Mobile",7,[316,317,320,323,326],{"key":198,"name":199,"field":311},{"key":318,"name":319,"field":311},"ios-swift","iOS (Swift)",{"key":321,"name":322,"field":311},"android-kotlin","Android (Kotlin)",{"key":324,"name":325,"field":311},"flutter","Flutter",{"key":327,"name":328,"field":311},"react-native","React Native",{"key":330,"name_tr":331,"name_en":332,"sort":333,"specializations":334},"security","Güvenlik","Security",8,[335,336,339,342,345,348],{"key":198,"name":199,"field":330},{"key":337,"name":338,"field":330},"appsec","AppSec",{"key":340,"name":341,"field":330},"offensive-pentest","Offensive \u002F Pentest",{"key":343,"name":344,"field":330},"cloud-security","Cloud Security",{"key":346,"name":347,"field":330},"devsecops","DevSecOps",{"key":349,"name":350,"field":330},"blue-team-incident","Blue Team \u002F Incident",{"key":352,"name_tr":353,"name_en":354,"sort":355,"specializations":356},"qa-test-automation","QA \u002F Test Otomasyonu","QA \u002F Test Automation",9,[357,358,361,364,367],{"key":198,"name":199,"field":352},{"key":359,"name":360,"field":352},"test-automation","Test Automation",{"key":362,"name":363,"field":352},"sdet","SDET",{"key":365,"name":366,"field":352},"performance-testing","Performance Testing",{"key":368,"name":369,"field":352},"mobile-qa","Mobile QA",{"key":5,"name_tr":6,"name_en":6,"sort":371,"specializations":372},10,[373,374,375,376],{"key":198,"name":199,"field":5},{"key":96,"name":97,"field":5},{"key":100,"name":101,"field":5},{"key":103,"name":104,"field":5},{"key":378,"name_tr":379,"name_en":380,"sort":381,"specializations":382},"game-dev","Oyun Geliştirme","Game Development",11,[383,384,387,390,393,396],{"key":198,"name":199,"field":378},{"key":385,"name":386,"field":378},"unity-csharp","Unity (C#)",{"key":388,"name":389,"field":378},"unreal-cpp","Unreal (C++)",{"key":391,"name":392,"field":378},"gameplay","Gameplay",{"key":394,"name":395,"field":378},"graphics-rendering","Graphics \u002F Rendering",{"key":397,"name":398,"field":378},"multiplayer-netcode","Multiplayer \u002F Netcode",{"key":400,"name_tr":401,"name_en":401,"sort":402,"specializations":403},"ml-engineer","ML Engineer",12,[404,405],{"key":198,"name":199,"field":400},{"key":406,"name":407,"field":400},"classical-ml","Classical ML",[14,15,16],{"junior":410,"mid":412,"senior":413},{"questions":411,"median_sec":3},20,{"questions":411,"median_sec":3},{"questions":411,"median_sec":3},[10,415],"en",[417,418],"google","github",27600,true]