`publish` Map The `publish` section allows services to publish messages to one or more SNS topics. ```yaml publish: topics: - name: orderEvents ``` In the example above, this manifest declares an SNS topic named `orderEvents` that other worker services deployed to the Copilot environment can subscribe to. An environment variable named `COPILOT_SNS_TOPIC_ARNS` is injected into your workload as a JSON string. In JavaScript, you could write: ```js const {orderEvents} = JSON.parse(process.env.COPILOT_SNS_TOPIC_ARNS) ``` For more details, see the [pub/sub](../developing/publish-subscribe.en.md) page. publish.`topics` Array of topics List of [`topic`](#publish-topics-topic) objects. publish.topics.`topic` Map Holds configuration for a single SNS topic. publish.topics.topic.`name` String Required. The name of the SNS topic. Must contain only upper and lowercase letters, numbers, hyphens, and underscores. publish.topics.topic.`fifo` Boolean or Map FIFO (first in, first out) SNS topic configuration. If you specify `true`, Copilot will create the topic with FIFO ordering. ```yaml publish: topics: - name: mytopic fifo: true ``` Alternatively, you can also configure advanced SNS FIFO topic settings. ```yaml publish: topics: - name: mytopic fifo: content_based_deduplication: true ``` publish.topics.topic.fifo.`content_based_deduplication` Boolean If the message body is guaranteed to be unique for each published message, you can enable content-based deduplication for the SNS FIFO topic.