Topic
Introduction
TopicConstruct is an influential construct from the FW24 toolkit, engineered to streamline the creation and management of Amazon Simple Notification Service (SNS) topics within your AWS applications. TopicConstruct allows you to define an SNS topic along with its properties, including topicName and topicProps:
- topicName: Represents the unique name of the SNS topic you wish to create.
- topicProps: Defines the properties of the SNS topic, such as- displayName- topicNameetc.
TopicConstruct offers a simplified approach to managing SNS topics, facilitating the publishing of messages and subscribing endpoints to topics in your AWS applications. Whether you're dispatching direct notifications, broadcasting messages to multiple endpoints, or filtering messages prior to sending, TopicConstruct eases the task of managing SNS topics in AWS.
Getting Started
This guide will walk you through the process of importing, configuring, and using TopicConstruct in your project.
Step 1: Importing
First things first, let's bring TopicConstruct into your project. You can do this by importing it from the FW24 package as shown below:
import { TopicConstruct } from '@ten24group/fw24';
Step 2: Configuration
Now that TopicConstruct is part of your project, it's time to configure it to suit your needs. The configuration involves setting up topicName and topicProps:
  var topic = new TopicConstruct({
    topicName: 'my-topic',
    topicProps: {
      displayName: 'My Topic',
    },
  });
In this configuration:
- topicNamesets the name of the SNS topic that you want to create.
- topicPropssets the properties for the SNS topic, such as- displayName.
Feel free to adjust these settings to match your application's requirements.
Step 3: Usages
With TopicConstruct configured, it's time to put it to work. Here's how you can incorporate it into your application:
  app.use(topic).run();
This will add the configured topic to your application. You can now manage SNS topics in your AWS applications using the TopicConstruct.
Step 4: Publishing Messages
One of the key features of TopicConstruct is its ability to simplify the process of publishing messages and subscribing endpoints to topics. This means that you can easily send direct notifications, fanout messages to multiple endpoints, or filter messages before sending.
  import { Environment, sendTopicMessage } from '@ten24group/fw24';
  const { topicName, message } = req.body as {topicName: string, message: string};
  const topicArn = Environment.topicArn(topicName);
  const snsResult = await sendTopicMessage(topicArn, message);