# JustSaying > A helpful library for publishing and consuming events / messages over SNS (SNS / SQS as a message bus) This file contains links to documentation sections following the llmstxt.org standard. ## Table of Contents - [Configuring JustSaying](https://justeattakeaway.github.io/JustSaying/Configuration): - In this configuration the following AWS resources will be created - a SNS topic of name `orderplacedevent` - a SQS queue of name... - [Documentation Generation](https://justeattakeaway.github.io/JustSaying/Documentation_generation): - Install the plugin - PlantUML plugin for Visual Studio Code - [Advanced Topics](https://justeattakeaway.github.io/JustSaying/advanced/): Advanced configuration and scenarios for JustSaying. These topics cover specialized use cases and optimization techniques. - [Compression](https://justeattakeaway.github.io/JustSaying/advanced/compression): Message compression reduces the size of message bodies before publishing, lowering AWS costs and improving throughput. JustSaying supports Gzip com... - [Dynamic Topics](https://justeattakeaway.github.io/JustSaying/advanced/dynamic-topics): Dynamic topics allow you to determine the topic name at runtime based on message content. This is useful for multi-tenant scenarios where each tena... - [Encryption](https://justeattakeaway.github.io/JustSaying/advanced/encryption): JustSaying supports server-side encryption for messages using AWS Key Management Service \(KMS\). Encrypt messages at rest in SNS topics and SQS qu... - [Testing](https://justeattakeaway.github.io/JustSaying/advanced/testing): Testing JustSaying applications requires strategies for both unit testing (mocking) and integration testing (LocalStack). This guide covers both ap... - [AWS Configuration](https://justeattakeaway.github.io/JustSaying/aws-configuration/): JustSaying requires AWS configuration to connect to SNS and SQS services. Configure AWS settings using the fluent API within `AddJustSaying` to spe... - [Credentials](https://justeattakeaway.github.io/JustSaying/aws-configuration/credentials): JustSaying uses the AWS SDK to communicate with SNS and SQS. Configure credentials using the `.Client(...)` fluent API to authenticate with AWS ser... - [Regions](https://justeattakeaway.github.io/JustSaying/aws-configuration/regions): AWS regions must be configured in JustSaying to specify where your SNS topics and SQS queues are located. Region configuration is required and is s... - [Service Endpoints](https://justeattakeaway.github.io/JustSaying/aws-configuration/service-endpoints): Service endpoints specify the URL where AWS services can be reached. By default, the AWS SDK connects to the real AWS services. Configure custom se... - [AWS IAM](https://justeattakeaway.github.io/JustSaying/aws-iam): JustSaying requires IAM permissions to create infrastructure and publish/consume messages in AWS - [Getting Started](https://justeattakeaway.github.io/JustSaying/getting-started): **JustSaying** uses conventions based on type names to determine which queues, topics, and subscriptions it should use. On startup, JustSaying ensu... - [How JustSaying Uses SQS/SNS](https://justeattakeaway.github.io/JustSaying/how-justsaying-uses-sqs-sns): Lower level details on which API's JustSaying calls to achieve its mission - [Interoperability](https://justeattakeaway.github.io/JustSaying/interoperability): Message formats and AWS interactions - [Introduction](https://justeattakeaway.github.io/JustSaying/docs): JustSaying is a .NET library for publishing and consuming messages using SNS/SQS. - [Messaging Configuration](https://justeattakeaway.github.io/JustSaying/messaging-configuration/): Some settings aren't specific to either subscriptions or publications. They can be configured using the `MessagingConfigurationBuilder`. - [Logging](https://justeattakeaway.github.io/JustSaying/messaging-configuration/logging): JustSaying automatically integrates with `Microsoft.Extensions.Logging`, so if you're using the .NET Core host infrastructure, you don't have to do... - [Metrics](https://justeattakeaway.github.io/JustSaying/messaging-configuration/metrics): By default, JustSaying won't emit any metrics as it doesn't have any information on where or how to send them. By providing an implementation of an... - [Naming Conventions](https://justeattakeaway.github.io/JustSaying/messaging-configuration/naming-conventions): Naming conventions are used in JustSaying to convert message types into queue and topic names. While custom names can be provided when registering ... - [OpenTelemetry](https://justeattakeaway.github.io/JustSaying/messaging-configuration/opentelemetry): JustSaying has built-in support for OpenTelemetry distributed tracing and metrics. Traces are automatically created for publish and process operati... - [Publications](https://justeattakeaway.github.io/JustSaying/publishing/): Publishing in JustSaying allows you to send messages to AWS SNS topics or SQS queues. Configure your publications using the fluent API within... - [Batch Publishing](https://justeattakeaway.github.io/JustSaying/publishing/batch-publishing): Batch publishing allows you to publish multiple messages in a single AWS API call, reducing latency and improving throughput. Use... - [Configuration](https://justeattakeaway.github.io/JustSaying/publishing/configuration): All publication configuration can be accessed via the `MessagingBusBuilder.Publications` fluent API: - [Publish Middleware](https://justeattakeaway.github.io/JustSaying/publishing/middleware): Publish middleware allows you to add cross-cutting concerns to your publish operations, such as tracing, logging, or metadata enrichment. It follow... - [WithQueue](https://justeattakeaway.github.io/JustSaying/publishing/withqueue): Publishes messages of type `T` directly to an SQS queue without using SNS. This is ideal for point-to-point messaging where only one consumer shoul... - [WithTopic](https://justeattakeaway.github.io/JustSaying/publishing/withtopic): Creates an SNS topic for publishing messages of type `T`. Multiple subscribers can receive messages published to this topic, enabling fan-out scena... - [Write Configuration](https://justeattakeaway.github.io/JustSaying/publishing/write-configuration): Configure topic and queue publication behavior using `WithWriteConfiguration`. These settings control encryption, compression, message retention, a... - [Sample Application](https://justeattakeaway.github.io/JustSaying/sample-application): Sample Application found here - [Configuration](https://justeattakeaway.github.io/JustSaying/subscriptions/configuration/): JustSaying has many configuration options for its subscription back end. In these pages we'll discuss them and detail how to decide what they shoul... - [ForQueue](https://justeattakeaway.github.io/JustSaying/subscriptions/configuration/forqueue): * A queue will be created for message of type `T`, using the supplied `IQueueNamingConvention`, applied to the message type `T`. * This convention ... - [ForTopic](https://justeattakeaway.github.io/JustSaying/subscriptions/configuration/fortopic): * A topic and queue pair will be created for message of type `T`, with a subscription attaching the topic to the queue. * The topic and queue names... - [Handler Registration and Resolution](https://justeattakeaway.github.io/JustSaying/subscriptions/configuration/handler-registration-and-resolution): JustSaying handlers are recognised by their implementing an interface called `IHandlerAsync`, where `T` is the type of the message the handler s... - [SqsReadConfiguration](https://justeattakeaway.github.io/JustSaying/subscriptions/configuration/sqsreadconfiguration): There are many toggles and settings available to tune JustSaying to your workload. For subscriptions, these are accessible via the... - [Dead Letter Queues](https://justeattakeaway.github.io/JustSaying/subscriptions/dead-letter-queues): AKA Error Queues - [Message Context](https://justeattakeaway.github.io/JustSaying/subscriptions/message-context): When creating a handler for a message, you provide an `IHandler` implementation that will process the JustSaying message. However, sometimes you... - [Middleware](https://justeattakeaway.github.io/JustSaying/subscriptions/middleware/): Middleware in JustSaying is an extensibility feature that provides a way to add your own code around handlers to add things like custom logging, ex... - [Custom Middleware](https://justeattakeaway.github.io/JustSaying/subscriptions/middleware/custom-middleware): Middleware in JustSaying is similar to middleware in ASP.NET Core. They derive from `MiddlewareBase`, and implement thi... - [SubscriptionGroups](https://justeattakeaway.github.io/JustSaying/subscriptions/subscriptiongroups/): Subscription Groups in JustSaying are a way of managing concurrency across multiple queues, and applying backpressure during high-load events. - [Configuration](https://justeattakeaway.github.io/JustSaying/subscriptions/subscriptiongroups/configuration): Configuring subscription groups consists of firstly defining a group and its configuration, and then assigning queue and topic subscriptions to it.