
resource "kafka_topic" "stream_snowflakefacts_dim_release" {
  name               = "cdc.snowflakeFacts.dim_release"
  replication_factor = var.kafka_minimum_replication_factor
  partitions         = 3
  config = {
    "max.message.bytes"     = "15728640"
    "cleanup.policy"        = "compact"
    "delete.retention.ms"   = "2419200000" # 4 weeks
    "min.compaction.lag.ms" = "604800000"  # 1 week
    "min.insync.replicas"   = "2"
  }
}

resource "kafka_topic" "dlq_stream_snowflakefacts_dim_release" {
  name               = "dlq.cdc.snowflakeFacts.dim_release"
  replication_factor = var.kafka_minimum_replication_factor
  partitions         = 1
  config = {
    "retention.ms"        = "72000000"
    "min.insync.replicas" = "2"
  }
}

resource "kafka_topic" "stream_snowflakefacts_dim_artist" {
  name               = "cdc.snowflakeFacts.dim_artist"
  replication_factor = var.kafka_minimum_replication_factor
  partitions         = 3
  config = {
    "max.message.bytes"     = "15728640"
    "cleanup.policy"        = "compact"
    "delete.retention.ms"   = "2419200000" # 4 weeks
    "min.compaction.lag.ms" = "604800000"  # 1 week
    "min.insync.replicas"   = "2"
  }
}

resource "kafka_topic" "dlq_stream_snowflakefacts_dim_artist" {
  name               = "dlq.cdc.snowflakeFacts.dim_artist"
  replication_factor = var.kafka_minimum_replication_factor
  partitions         = 1
  config = {
    "retention.ms"        = "72000000"
    "min.insync.replicas" = "2"
  }
}

resource "kafka_topic" "stream_snowflakefacts_dim_isrc" {
  name               = "cdc.snowflakeFacts.dim_isrc"
  replication_factor = var.kafka_minimum_replication_factor
  partitions         = 3
  config = {
    "max.message.bytes"     = "15728640"
    "cleanup.policy"        = "compact"
    "delete.retention.ms"   = "2419200000" # 4 weeks
    "min.compaction.lag.ms" = "604800000"  # 1 week
    "min.insync.replicas"   = "2"
  }
}

resource "kafka_topic" "dlq_stream_snowflakefacts_dim_isrc" {
  name               = "dlq.cdc.snowflakeFacts.dim_isrc"
  replication_factor = var.kafka_minimum_replication_factor
  partitions         = 1
  config = {
    "retention.ms"        = "72000000"
    "min.insync.replicas" = "2"
  }
}

resource "kafka_topic" "stream_snowflakefacts_dim_catalog" {
  name               = "cdc.snowflakeFacts.dim_catalog"
  replication_factor = var.kafka_minimum_replication_factor
  partitions         = 3
  config = {
    "max.message.bytes"     = "15728640"
    "cleanup.policy"        = "compact"
    "delete.retention.ms"   = "2419200000" # 4 weeks
    "min.compaction.lag.ms" = "604800000"  # 1 week
    "min.insync.replicas"   = "2"
  }
}

resource "kafka_topic" "dlq_stream_snowflakefacts_dim_catalog" {
  name               = "dlq.cdc.snowflakeFacts.dim_catalog"
  replication_factor = var.kafka_minimum_replication_factor
  partitions         = 1
  config = {
    "retention.ms"        = "72000000"
    "min.insync.replicas" = "2"
  }
}
