Skip to content

Commit

Permalink
Added doc improvements
Browse files Browse the repository at this point in the history
  • Loading branch information
robece committed May 9, 2023
1 parent 0e6a7f4 commit 53e413d
Show file tree
Hide file tree
Showing 8 changed files with 172 additions and 56 deletions.
21 changes: 12 additions & 9 deletions articles/event-grid/availability-zones-disaster-recovery.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,7 @@ ms.date: 09/23/2022

# In-region recovery using availability zones and geo-disaster recovery across regions (Azure Event Grid)

This article describes how Azure Event Grid supports automatic in-region recovery of your Event Grid resource definitions and data when a failure occurs in a region that has availability zones. It also describes how Event Grid supports automatic recovery of Event Grid resource definitions (no data) to another region when a failure occurs in a region that has a paired region.

This article describes how Azure Event Grid supports automatic in-region recovery of your Event Grid resource definitions and data when a failure occurs in a region that has availability zones. It also describes how Event Grid supports automatic recovery of Event Grid resource definitions (no data) to another region when a failure occurs in a region that has a paired region.

## In-region recovery using availability zones

Expand Down Expand Up @@ -37,28 +36,32 @@ Here are a few reasons why you may want to disable the Microsoft-initiated failo

In such cases, the recommended option is to build your own disaster recovery plan for Azure Event Grid topics and domains. While this option requires a bit more effort, it enables faster failover, and you are in control of choosing secondary regions. If you want to implement client-side disaster recovery for Azure Event Grid topics, see [Build your own client-side disaster recovery for Azure Event Grid topics](custom-disaster-recovery-client-side.md).


## RTO and RPO

Disaster recovery is measured with two metrics:
Disaster recovery is measured with two metrics:

- Recovery Point Objective (RPO): the minutes or hours of data that may be lost.
- Recovery Time Objective (RTO): the minutes or hours the service may be down.
- Recovery Point Objective (RPO): the minutes or hours of data that may be lost.
- Recovery Time Objective (RTO): the minutes or hours the service may be down.

Event Grid’s automatic failover has different RPOs and RTOs for your metadata (topics, domains, event subscriptions.) and data (events). If you need different specification from the following ones, you can still implement your own client-side failover using the topic health apis.
Event Grid’s automatic failover has different RPOs and RTOs for your metadata (topics, domains, event subscriptions.) and data (events). If you need different specification from the following ones, you can still implement your own client-side failover using the topic health apis.

### Recovery point objective (RPO)

- **Metadata RPO**: zero minutes. For applicable resources, when a resource is created/updated/deleted, the resource definition is synchronously replicated to the geo-pair. When a failover occurs, no metadata is lost.
- **Data RPO**: When a failover occurs, new data is processed from the paired region. As soon as the outage is mitigated for the affected region, the unprocessed events will be dispatched from there. If the region recovery required longer time than the [time-to-live](delivery-and-retry.md#dead-letter-events) value set on events, the data could get dropped. To mitigate this data loss, we recommend that you [set up a dead-letter destination](manage-event-delivery.md) for an event subscription. If the affected region is completely lost and non-recoverable, there will be some data loss. In the best-case scenario, the subscriber is keeping up with the publish rate and only a few seconds of data is lost. The worst-case scenario would be when the subscriber isn't actively processing events and with a max time to live of 24 hours, the data loss can be up to 24 hours.

- **Data RPO**: When a failover occurs, new data is processed from the paired region. As soon as the outage is mitigated for the affected region, the unprocessed events will be dispatched from there. If the region recovery required longer time than the [time-to-live](delivery-and-retry.md#dead-letter-events) value set on events, the data could get dropped. To mitigate this data loss, we recommend that you [set up a dead-letter destination](manage-event-delivery.md) for an event subscription. If the affected region is completely lost and non-recoverable, there will be some data loss. In the best-case scenario, the subscriber is keeping up with the publish rate and only a few seconds of data is lost. The worst-case scenario would be when the subscriber isn't actively processing events and with a max time to live of 24 hours, the data loss can be up to 24 hours.

### Recovery time objective (RTO)

- **Metadata RTO**: Failover decision making is based on factors like available capacity in paired region and can last in the range of 60 minutes or more. Once failover is initiated, within 5 minutes, Event Grid will begin to accept create/update/delete calls for topics and subscriptions.

- **Data RTO**: Same as above.

> [!IMPORTANT]
> - In case of server-side disaster recovery, if the paired region has no extra capacity to take on the additional traffic, Event Grid cannot initiate failover. The recovery is done on a best-effort basis.
> - The cost for using this feature is: $0.
> - The cost for using this feature is: $0.
> - Geo-disaster recovery is not supported for partner namespaces and partner topics.
## Next steps

See [Build your own client-side disaster recovery for Azure Event Grid topics](custom-disaster-recovery-client-side.md).
4 changes: 4 additions & 0 deletions articles/event-grid/concepts.md
Original file line number Diff line number Diff line change
Expand Up @@ -143,6 +143,10 @@ For both custom or namespace topics, your application should batch several even

If you are a [partner](partner-events-overview-for-partners.md), you can define the event types that you are making available to customers when you create a Channel. With inline event type definitions, subscribers can easily filter events given their event type when configuring an event subscription.

## Availability zones

Azure availability zones are physically separate locations within each Azure region that are tolerant to local failures. They're connected by a high-performance network with a round-trip latency of less than 2 milliseconds. Each availability zone is composed of one or more data centers equipped with independent power, cooling, and networking infrastructure. If one zone is affected, regional services, capacity, and high availability are supported by the remaining two zones. See [Regions and availability zones](../availability-zones/az-overview.md) for more information about availability zones.

## Next steps

- For an introduction to Event Grid, see [About Event Grid](overview.md).
Expand Down
30 changes: 30 additions & 0 deletions articles/event-grid/configure-throughput-units.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
---
title: Configure throughput units in Azure Event Grid namespaces
description: This article describes how to configure throughput units in namespaces
author: robece
ms.topic: how-to
ms.author: robece
ms.date: 05/09/2023
---

# Configure throughput units in Azure Event Grid namespaces

You can configure the number of throughput units (TUs) during the creation of the Azure Event Grid namespace, or once the resource has been created.

## Configure throughput units during namespace creation

During the namespace creation select the number of TUs required, along with the configuration required to create the resource.

:::image type="content" source="media/configure-throughput-units/namespace-creation-with-throughput-units.png" alt-text="Screenshot showing Event Grid creation with throughput units.":::

## Configure throughput units in created namespace

If you already created the namespace and want to increase or decrease TUs, follow the next steps:

1. Navigate to the Azure portal and select the Azure Event Grid namespace you would like to configure the throughput units.
2. Once you have opened the resource, select the “Scale” blade.
3. Select the number of TUs you want to increase or decrease.
4. Select “Save” to apply the changes.
5. The throughput units will then be enabled and available for use in your namespace.

:::image type="content" source="media/configure-throughput-units/namespace-scale.png" alt-text="Screenshot showing Event Grid scale blade.":::
16 changes: 14 additions & 2 deletions articles/event-grid/create-view-manage-namespaces.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ description: This article describes how to create, view and manage namespaces
author: robece
ms.topic: how-to
ms.author: robece
ms.date: 04/28/2023
ms.date: 05/09/2023
---

# Create, view, and manage namespaces
Expand All @@ -25,7 +25,7 @@ Please follow the next sections to create, view and manage an Azure Event Grid n

:::image type="content" source="media/create-view-manage-namespaces/overview-create.png" alt-text="Screenshot showing Event Grid overview.":::

4. On the **Basics** tab, select the Azure subscription, resource group, name, and location for your Event Grid namespace.
4. On the **Basics** tab, select the Azure subscription, resource group, name, location, [availability zone](concepts.md#availability-zones), and [throughput units](concepts.md#throughput-units) for your Event Grid namespace.

:::image type="content" source="media/create-view-manage-namespaces/namespace-creation-basics.png" alt-text="Screenshot showing Event Grid namespace creation basic tab.":::

Expand Down Expand Up @@ -70,6 +70,18 @@ In case you want to enable the MQTT capabilities in the Azure Event Grid namespa
> [!NOTE]
> Please note once MQTT is enabled it cannot be disabled.
## Configure throughput units (TUs) in created namespace

If you already created a namespace and want to increase or decrease TUs, follow the next steps:

1. Navigate to the Azure portal and select the Azure Event Grid namespace you would like to configure the throughput units.
2. Once you have opened the resource, select the “Scale” blade.
3. Select the number of TUs you want to increase or decrease.
4. Select “Save” to apply the changes.
5. The throughput units will then be enabled and available for use in your namespace.

:::image type="content" source="media/create-view-manage-namespaces/namespace-scale.png" alt-text="Screenshot showing Event Grid scale blade.":::

## Delete a namespace

1. Follow instructions from the [View a namespace](#view-a-namespace) section to view all the namespaces, and select the namespace that you want to delete from the list.
Expand Down
40 changes: 0 additions & 40 deletions articles/event-grid/includes/limits.md

This file was deleted.

Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
117 changes: 112 additions & 5 deletions articles/event-grid/quotas-limits.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,121 @@
title: Quotas and limits - Azure Event Grid | Microsoft Docs
description: This article provides limits and quotas for Azure Event Grid. For example, number of subscriptions for topic, number of custom topics per subscription, etc.
ms.topic: reference
ms.date: 02/17/2021
ms.date: 05/09/2023
---

# Azure Event Grid quotas and limits
This article lists quotas and limits in Azure Event Grid.

## Quotas and limits
[!INCLUDE [limits](./includes/limits.md)]
This article lists quotas and limits in Azure Event Grid.

> [!NOTE]
> The following limits listed in this article are per region.
## Namespace resource limits

[Azure Event Grid namespaces](concepts.md#namespaces) is available in public preview and enables MQTT messaging, and HTTP pull delivery.
The following limits apply to namespace resources in Azure Event Grid.

| Limit description | Limit |
|----------------------------------------|-------|
| Namespaces per Azure subscription | 10 |
| Maximum throughput units per namespace | 20 |

## Throughput unit limits for MQTT Messages in namespaces

A single [throughput unit](concepts.md#throughput-units) lets you:

| Limit description | Limit |
|-------------------|----------------------------------------------------------------------------|
| MQTT Clients | 10,000 |
| Receive | Up to 1,000 messages per second or 1 MB per second (whichever comes first) |
| Deliver/Consume | Up to 1,000 events per second or 1 MB per second |

## Throughput unit limits for Events in namespaces

A single [throughput unit](concepts.md#throughput-units) lets you:

| Limit description | Limit |
|-------------------|--------------------------------------------------------------------------|
| Event topics | 1,000 |
| Receive | Up to 1,000 events per second or 1 MB per second (whichever comes first) |
| Deliver/Consume | Up to 2,000 events per second or 2 MB per second |

## Topic and subscription resource limits in namespaces

The following limits apply to topic and subscription resources in Azure Event Grid namespaces.

| Limit description | Limit |
|-------------------------------------------------------|---------|
| Event topics per namespace | 100,000 |
| Event duration period in topic | 1 day |
| Subscriptions per topic | 500 |
| Connected clients per namespace (queue subscriptions) | 5,000 |

## Event limits in namespaces

The following limits apply to events in Azure Event Grid namespaces.

| Limit description | Limit |
|--------------------|-------|
| Event size | 1 MB |
| Batch size | 1 MB |
| Events per request | 5,000 |

## MQTT resource limits

The following limits apply to MQTT resources in Azure Event Grid namespaces.

| Limit description | Limit |
|---------------------|---------|
| Clients | 100,000 |
| CA certificates | 2 |
| Client groups | 10 |
| Topic spaces | 10 |
| Topic templates | 10 |
| Permission bindings | 100 |

## MQTT messages limits

The following limits apply to MQTT messages in Azure Event Grid namespaces.

| Limit description | Limit |
|----------------------------------------------|-------------------------------------------|
| Max message size | 512 KiB |
| Topic size | 256 B |
| Topic alias | 10 topic aliases |
| New connect requests | 500 requests per second? Per TU / per NS? |
| Subscribe requests | 5,000 requests per second |
| Total number of subscriptions per connection | 50 |

## Custom topic, system topic and partner topic resource limits

The following limits apply to custom topic, system topic and partner topic resources in Azure Event Grid.

| Limit description | Limit |
|--------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------|
| Custom topics per Azure subscription | 100<br/>When the limit is reached, you can consider a different region or consider using domains, which can support 100,000 topics. |
| Event subscriptions per topic | 500<br/>This limit can’t be increased. |
| Publish rate for a custom or a partner topic (ingress) | 5,000 events per second or 5 MB per second (whichever comes first) |
| Event size | 1 MB<br/>This limit can’t be increased. |
| Number of incoming events per batch | 5,000<br/>This limit can’t be increased |
| Private endpoint connections per topic | 64<br/>This limit can’t be increased |
| IP Firewall rules per topic | 128 |

## Domain resource limits

The following limits apply to Domain resources in Azure Event Grid.

| Limit description | Limit |
|-----------------------------------------------|--------------------------------------------------------------------|
| Domains per Azure subscription | 100 |
| Topics per domain | 100,000 |
| Event subscriptions per topic within a domain | 500<br/>This limit can’t be increased |
| Domain scope event subscriptions | 50<br/>This limit can’t be increased |
| Publish rate for a domain (ingress) | 5,000 events per second or 5 MB per second (whichever comes first) |
| Private endpoint connections per domain | 64 |
| IP Firewall rules per topic | 128 |

## Next steps
See [Azure subscription and service limits, quotas, and constraints](..//azure-resource-manager/management/azure-subscription-service-limits.md) for quotas and limits of all Azure services.

See [Azure subscription and service limits, quotas, and constraints](..//azure-resource-manager/management/azure-subscription-service-limits.md) for quotas and limits of all Azure services.

0 comments on commit 53e413d

Please sign in to comment.