diff --git a/terraform/environments/pubsub.tf b/terraform/environments/pubsub.tf
index c8c6011ff496a9c170d8214ee40a27d1f69d8343..a8c1b36a8ef4bfc7b4e698c6fd222799c5924eec 100644
--- a/terraform/environments/pubsub.tf
+++ b/terraform/environments/pubsub.tf
@@ -1,8 +1,16 @@
+locals {
+  main_topic = local.is_production ? data.terraform_remote_state.okuna_common_state.outputs.google_pubsub_topic_okuna_production : data.terraform_remote_state.okuna_common_state.outputs.google_pubsub_topic_okuna_staging
+  dlq_topic  = local.is_production ? data.terraform_remote_state.okuna_common_state.outputs.google_pubsub_topic_okuna_production_dlq : data.terraform_remote_state.okuna_common_state.outputs.google_pubsub_topic_okuna_staging_dlq
+
+  max_attemts = 10
+  min_backoff = "2s"
+  max_backoff = "10s"
+}
 
 resource "google_pubsub_subscription" "holi-chat-integration-okuna-sub" {
   project = data.terraform_remote_state.holi_infra_state.outputs.shared_project_id
   name    = random_id.main.hex
-  topic   = local.environment_name == "production" ? data.terraform_remote_state.okuna_common_state.outputs.google_pubsub_topic_okuna_production : data.terraform_remote_state.okuna_common_state.outputs.google_pubsub_topic_okuna_staging
+  topic   = local.main_topic
 
   ack_deadline_seconds = 10 * 60 # 10 minutes, max. value
   expiration_policy {
@@ -16,4 +24,14 @@ resource "google_pubsub_subscription" "holi-chat-integration-okuna-sub" {
       service_account_email = data.terraform_remote_state.holi_chat_integration_common_state.outputs.function_service_account
     }
   }
+
+  retry_policy {
+    minimum_backoff = local.min_backoff
+    maximum_backoff = local.max_backoff
+  }
+
+  dead_letter_policy {
+    dead_letter_topic     = local.dlq_topic
+    max_delivery_attempts = local.max_attemts
+  }
 }
diff --git a/terraform/environments/vars.tf b/terraform/environments/vars.tf
index 0df18735f57b6a7505896caebcae485e43f2e143..41936543d887d15df233199c53500b31f723cbca 100644
--- a/terraform/environments/vars.tf
+++ b/terraform/environments/vars.tf
@@ -5,4 +5,6 @@ locals {
   environment_type = contains(["staging", "production"], local.environment) ? local.environment : "review"
 
   default_region = data.terraform_remote_state.holi_infra_state.outputs.default_region
+
+  is_production = local.environment_name == "production"
 }