Skip to content

Commit 43e0383

Browse files
authored
Replace alert boxes with GitHub style (#6584)
* Readme * Single-line NOTE * Single-line INFO * Single-line SUCCESS -> TIP (only 3 in tutorials) * Single-line WARN/WARNING * Single-line DANGER * Easy multi-lines * `downloadbutton` works in blockquotes in tutorials * This is OK until ArticleRenderer can be fixed to allow `downloadbutton` in blockquotes * MIssed a few as they were on the first line * First-line single-line * Title cased Note and Info * Title cased Warn/Warning * Test to ensure legacy alerts not used and GitHub style alerts are valid * Missed a merge conflict artifact
1 parent 3db6f1f commit 43e0383

File tree

567 files changed

+2483
-1493
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

567 files changed

+2483
-1493
lines changed

README.md

+3-65
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,8 @@ The repository contains a devcontainer that has all the necessary tools to devel
3636

3737
For more information about devcontainers visit the [official documentation](https://code.visualstudio.com/docs/devcontainers/containers). Install the pre-requirements mentioned in the [getting started guide](https://code.visualstudio.com/docs/devcontainers/containers#_getting-started) and open the repository in Code (`> code .`).
3838

39-
Note: The docstool is currently started in the foreground. While it is possible to run it in the background with `&` or the parallel execution feature of devcontainer it might be more cumbersome to inspect the log output of the tool. The downside of starting in the foreground is that Code will continuously show a spinner with "Configuring container".
39+
> [!NOTE]
40+
> The docstool is currently started in the foreground. While it is possible to run it in the background with `&` or the parallel execution feature of devcontainer it might be more cumbersome to inspect the log output of the tool. The downside of starting in the foreground is that Code will continuously show a spinner with "Configuring container".
4041
4142
### Building samples and snippets
4243

@@ -932,70 +933,7 @@ The integrity tests include:
932933

933934
### Alerts
934935

935-
Sometimes it is necessary to draw attention to items you want to call out in a document.
936-
937-
This is achieved through [bootstrap alerts](https://getbootstrap.com/components/#alerts).
938-
939-
There are several keys each of which map to a different colored alert
940-
941-
| Key | Color |
942-
|---------------------|--------|
943-
| `SUCCESS` | green |
944-
| `NOTE` or `INFO` | blue |
945-
| `WARNING` or `WARN` | yellow |
946-
| `DANGER` | red |
947-
948-
Keys can be used in two manners
949-
950-
#### Single-line
951-
952-
This can be done with the following syntax
953-
954-
```markdown
955-
KEY: the note text.
956-
```
957-
958-
For example, this
959-
960-
```markdown
961-
NOTE: Some sample note text.
962-
```
963-
964-
will be rendered as
965-
966-
```html
967-
<p class="alert alert-info">
968-
Some sample note text.
969-
</p>
970-
```
971-
972-
#### Multi-line
973-
974-
Sometimes it is necessary to group markdown elements inside a note. This can be done with the following syntax
975-
976-
```markdown
977-
{{KEY:
978-
Inner markdown elements
979-
}}
980-
```
981-
982-
For example, this
983-
984-
```markdown
985-
{{NOTE:
986-
* Point one
987-
* Point Two
988-
}}
989-
```
990-
991-
will be rendered as
992-
993-
```html
994-
<p class="alert alert-info">
995-
* Point One
996-
* Point Two
997-
</p>
998-
```
936+
[GitHub style alert boxes](https://github.com/orgs/community/discussions/16925) are supported and rendered as [bootstrap alerts](https://getbootstrap.com/docs/5.3/components/alerts/).
999937

1000938
### Headings
1001939

architecture/azure/data-stores.md

+4-2
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,8 @@ Azure offers [several data stores](https://learn.microsoft.com/en-us/azure/archi
2727

2828
[**Try the NServiceBus Cosmos DB sample →**](/samples/cosmosdb/simple/)
2929

30-
Note: Cosmos DB offers _serverless_ and _provisioned throughput_ pricing models. When using _provisioned throughput_, Cosmos DB rejects further requests after the reserved Request Units are used. The [Cosmos DB pricing model documentation](https://learn.microsoft.com/en-us/azure/cosmos-db/how-pricing-works) has further information.
30+
> [!NOTE]
31+
> Cosmos DB offers _serverless_ and _provisioned throughput_ pricing models. When using _provisioned throughput_, Cosmos DB rejects further requests after the reserved Request Units are used. The [Cosmos DB pricing model documentation](https://learn.microsoft.com/en-us/azure/cosmos-db/how-pricing-works) has further information.
3132
3233
## Azure Table Storage
3334

@@ -48,7 +49,8 @@ Note: Cosmos DB offers _serverless_ and _provisioned throughput_ pricing models.
4849

4950
[**Try the NServiceBus Azure Table Storage sample →**](/samples/azure/azure-table/simple/)
5051

51-
Note: Applications built for Table Storage are compatible with Cosmos DB. See [this table](https://learn.microsoft.com/en-us/azure/cosmos-db/table/support) for a more in-depth comparison.
52+
> [!NOTE]
53+
> Applications built for Table Storage are compatible with Cosmos DB. See [this table](https://learn.microsoft.com/en-us/azure/cosmos-db/table/support) for a more in-depth comparison.
5254
5355
## Azure SQL Database
5456

architecture/azure/index.md

+2-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,8 @@ The Particular Service Platform supports the Azure services required to build di
2727

2828
Additional technology choices are described in [Technology choices for Azure solutions](https://learn.microsoft.com/en-us/azure/architecture/guide/technology-choices/technology-choices-overview).
2929

30-
Note: Azure services do not support distributed transactions. Read the [consistency guidance](/architecture/consistency.md) for more information about managing consistency in systems without distributed transactions.
30+
> [!NOTE]
31+
> Azure services do not support distributed transactions. Read the [consistency guidance](/architecture/consistency.md) for more information about managing consistency in systems without distributed transactions.
3132
3233
## Application architecture
3334

architecture/consistency.md

+9-8
Original file line numberDiff line numberDiff line change
@@ -44,12 +44,11 @@ Databases and queueing technologies may support atomic transactions for a single
4444

4545
Distributed transactions span multiple technologies, such as a database and a message queue. On Windows, the [Distributed Transaction Coordinator (DTC)](https://en.wikipedia.org/wiki/Microsoft_Distributed_Transaction_Coordinator) coordinates distributed transactions across multiple compatible participants using a [two-phase commit protocol](https://en.wikipedia.org/wiki/Two-phase_commit_protocol). Each participant must explicitly support the two-phase commit protocol.
4646

47-
{{WARN:
48-
While traditional on-premises focused services like MSMQ or Microsoft SQL Server support DTC transactions, managed cloud services do not, and require other strategies for achieving consistency between resources such as:
49-
50-
* The [outbox pattern](#transactions-outbox-pattern), which uses database capabilities to achieve atomic consistency for data and message operations
51-
* [Stateful workflows](workflows.md), which supervise the successful completion of all involved resources and manage compensating actions to achieve eventual consistency.
52-
}}
47+
> [!WARNING]
48+
> While traditional on-premises focused services like MSMQ or Microsoft SQL Server support DTC transactions, managed cloud services do not, and require other > strategies for achieving consistency between resources such as:
49+
>
50+
> * The [outbox pattern](#transactions-outbox-pattern), which uses database capabilities to achieve atomic consistency for data and message operations
51+
> * [Stateful workflows](workflows.md), which supervise the successful completion of all involved resources and manage compensating actions to achieve eventual consistency.
5352
5453
### Outbox pattern
5554

@@ -59,7 +58,8 @@ The outbox pattern is implemented by storing outgoing messages in the same datab
5958

6059
The nature of the outbox pattern may cause outgoing messages to be dispatched multiple times, which requires [idempotency](#idempotency) in receivers.
6160

62-
Note: Implementing the outbox pattern is very risky and error-prone. Small mistakes can lead to unintended behavior and message or data loss. The [NServiceBus outbox feature](/nservicebus/outbox/) implements the outbox pattern, including built-in message deduplication when receiving messages, and is thoroughly tested and well-documented.
61+
> [!NOTE]
62+
> Implementing the outbox pattern is very risky and error-prone. Small mistakes can lead to unintended behavior and message or data loss. The [NServiceBus outbox feature](/nservicebus/outbox/) implements the outbox pattern, including built-in message deduplication when receiving messages, and is thoroughly tested and well-documented.
6363
6464
## Idempotency
6565

@@ -81,7 +81,8 @@ Message deduplication is the easiest way to detect if a message has been process
8181

8282
One advantage of this approach is its simplicity. However, it has downsides. Every message needs to be stored and searched for, which can reduce message throughput. Deduplication storage is not infinite, limiting the deduplication guarantees of this approach to the provided storage capacity. Identifiers for deduplication typically operate on technical IDs (e.g. message ID), which means this approach does not work for duplicate message _content_.
8383

84-
Note: Implementing message deduplication is risky and error-prone. Small mistakes can lead to unintended behavior or message loss. The [NServiceBus Outbox feature](/nservicebus/outbox/) implements message deduplication and is thoroughly tested and well-documented.
84+
> [!NOTE]
85+
> Implementing message deduplication is risky and error-prone. Small mistakes can lead to unintended behavior or message loss. The [NServiceBus Outbox feature](/nservicebus/outbox/) implements message deduplication and is thoroughly tested and well-documented.
8586
8687
### Side effect checks
8788

architecture/recoverability.md

+14-15
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,14 @@ Transient failures are temporary and are not caused by errors in business logic.
1616

1717
[**Blog: I caught an exception. Now what? →**](https://particular.net/blog/but-all-my-errors-are-severe)
1818

19-
Note: The nature of retries implies that messages might be processed in a different order under some circumstances.
19+
> [!NOTE]
20+
> The nature of retries implies that messages might be processed in a different order under some circumstances.
2021
21-
{{Note:
22-
The Particular Platform simplifies the handling of transient errors:
23-
24-
- NServiceBus has [built-in support for immediate and delayed retries](/nservicebus/recoverability/) for all supported messaging technologies. The automated retries behavior is highly customizable.
25-
- ServicePulse shows [real-time metrics monitoring retries](/servicepulse/#real-time-monitoring) occuring in the system.
26-
}}
22+
> [!NOTE]
23+
> The Particular Platform simplifies the handling of transient errors:
24+
>
25+
> - NServiceBus has [built-in support for immediate and delayed retries](/nservicebus/recoverability/) for all supported messaging technologies. The automated > retries behavior is highly customizable.
26+
> - ServicePulse shows [real-time metrics monitoring retries](/servicepulse/#real-time-monitoring) occuring in the system.
2727
2828

2929
## Persistent errors
@@ -36,14 +36,13 @@ Once the root cause of a persistent error has been resolved, messages can be mov
3636

3737
[**Video: An exception occurred... Try again →**](https://www.youtube.com/watch?v=gSQxtgw1Qz4)
3838

39-
{{Note:
40-
The Particular Platform simplifies the handling of persistent errors:
41-
42-
- NServiceBus automatically forwards messages exceeding the configured number of automated retries to the [error queue](/nservicebus/recoverability/configure-error-handling.md).
43-
- ServiceControl can send [email notifications](/servicepulse/health-check-notifications.md) for dead-lettered messages.
44-
- Messages moved to the error queue are [enhanced with additional metadata](/servicepulse/intro-failed-messages.md#failed-messages-page-message-details-page) to help with root cause detection.
45-
- Both [ServiceInsight](/serviceinsight/managing-errors-and-retries.md) and [ServicePulse](/servicepulse/intro-failed-messages.md) offer monitoring and inspection of failed messages and advanced retry functionality.
46-
}}
39+
> [!NOTE]
40+
> The Particular Platform simplifies the handling of persistent errors:
41+
>
42+
> - NServiceBus automatically forwards messages exceeding the configured number of automated retries to the [error queue](/nservicebus/recoverability/configure-error-handling.md).
43+
> - ServiceControl can send [email notifications](/servicepulse/health-check-notifications.md) for dead-lettered messages.
44+
> - Messages moved to the error queue are [enhanced with additional metadata](/servicepulse/intro-failed-messages.md#failed-messages-page-message-details-page) to help with root cause detection.
45+
> - Both [ServiceInsight](/serviceinsight/managing-errors-and-retries.md) and [ServicePulse](/servicepulse/intro-failed-messages.md) offer monitoring and inspection of failed messages and advanced retry functionality.
4746
4847
## Best practices
4948

architecture/workflows.md

+4-2
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@ callsToAction: ['solution-architect']
77

88
Business processes typically involve various distributed components that need to be invoked in a coordinated manner. The Particular Service Platform supports both choreography and orchestration of workflows.
99

10-
Note: Choreography and orchestration are not mutually exclusive. The patterns may be combined at different levels of business workflows.
10+
> [!NOTE]
11+
> Choreography and orchestration are not mutually exclusive. The patterns may be combined at different levels of business workflows.
1112
1213
## Choreography
1314

@@ -46,7 +47,8 @@ _An orchestrated workflow implemented as an NServiceBus Saga, visualized by [Ser
4647

4748
[**Tutorial: Introduction to NServiceBus sagas →**](/tutorials/nservicebus-sagas/1-saga-basics/)
4849

49-
Note: NServiceBus sagas focus on providing a convenient and efficient way to manage message-based workflows as described by the [Process Manager pattern](https://www.enterpriseintegrationpatterns.com/patterns/messaging/ProcessManager.html). The [_saga distributed transactions_ pattern](https://learn.microsoft.com/en-us/azure/architecture/reference-architectures/saga/saga) is primarily concerned with managing long-lived transactions and ensuring consistency between multiple operations, especially in the presence of failures. The NServiceBus saga feature can be used to implement the _saga distributed transactions_ pattern.
50+
> [!NOTE]
51+
> NServiceBus sagas focus on providing a convenient and efficient way to manage message-based workflows as described by the [Process Manager pattern](https://www.enterpriseintegrationpatterns.com/patterns/messaging/ProcessManager.html). The [_saga distributed transactions_ pattern](https://learn.microsoft.com/en-us/azure/architecture/reference-architectures/saga/saga) is primarily concerned with managing long-lived transactions and ensuring consistency between multiple operations, especially in the presence of failures. The NServiceBus saga feature can be used to implement the _saga distributed transactions_ pattern.
5052
5153
### Challenges
5254

monitoring/custom-checks/install-plugin.md

+4-2
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,15 @@ component: CustomChecks
66
versions: 'CustomChecks:*'
77
---
88

9-
NOTE: This plugin can be enabled and configured with the [ServicePlatform Connector plugin](/platform/connecting.md).
9+
> [!NOTE]
10+
> This plugin can be enabled and configured with the [ServicePlatform Connector plugin](/platform/connecting.md).
1011
1112
To install the custom checks plugin into an endpoint, reference the [NServiceBus.CustomChecks NuGet package](https://www.nuget.org/packages/NServiceBus.CustomChecks/) and add the following to the endpoint configuration:
1213

1314
snippet: CustomCheckNew_Enable
1415

15-
NOTE: `ServiceControl_Queue` is a placeholder for the actual ServiceControl Instance (Not a ServiceControl Audit instance) input queue. The ServiceControl input queue is equal to the [ServiceControl service name](/servicecontrol/installation.md#servicecontrol-plugins) as configured in the ServiceControl Management Utility.
16+
> [!NOTE]
17+
> `ServiceControl_Queue` is a placeholder for the actual ServiceControl Instance (Not a ServiceControl Audit instance) input queue. The ServiceControl input queue is equal to the [ServiceControl service name](/servicecontrol/installation.md#servicecontrol-plugins) as configured in the ServiceControl Management Utility.
1618
1719
It may not make sense to enable the custom checks plugin in all environments. For instance, a development environment may not have a running ServiceControl instance to consume custom check messages. In these cases, enable the plugin conditionally, based on an environment variable or configuration setting.
1820

monitoring/custom-checks/writing-custom-checks.md

+2-1
Original file line numberDiff line numberDiff line change
@@ -16,4 +16,5 @@ All custom checks are executed when the endpoint starts up. If the optional inte
1616

1717
snippet: PeriodicCheck
1818

19-
NOTE: Custom checks are discovered at runtime using assembly scanning. This means they can also be deployed to endpoints as NuGet packages.
19+
> [!NOTE]
20+
> Custom checks are discovered at runtime using assembly scanning. This means they can also be deployed to endpoints as NuGet packages.

monitoring/heartbeats/expired-heartbeats.md

+2-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@ Heartbeat messages have a [time to be received (TTBR)](/nservicebus/messaging/di
1212

1313
Although NServiceBus configures the use of DLQ by default, messages that are defined with TTBR will not be automatically forwarded to the DLQ and will be discarded. Configuration can be specified to [override this behavior](/transports/msmq/dead-letter-queues.md#enabling-dlq-for-messages-with-ttbr) so that these messages can be forwarded to the DLQ.
1414

15-
WARNING: When using NServiceBus Versions 6.1 or below, messages will be forwarded to the DLQ even if TTBR is set on the messages. To avoid this behavior, DLQ can be disabled by configuring the [MSMQ connection strings](/transports/msmq/connection-strings.md). The heartbeat messages will be forwarded to the DLQ when ServiceControl is either stopped or very busy. In this case, the dead letter queue needs to be monitored and cleaned up.
15+
> [!WARNING]
16+
> When using NServiceBus Versions 6.1 or below, messages will be forwarded to the DLQ even if TTBR is set on the messages. To avoid this behavior, DLQ can be disabled by configuring the [MSMQ connection strings](/transports/msmq/connection-strings.md). The heartbeat messages will be forwarded to the DLQ when ServiceControl is either stopped or very busy. In this case, the dead letter queue needs to be monitored and cleaned up.
1617
1718
### Azure Service Bus
1819

monitoring/heartbeats/in-servicepulse.md

+4-2
Original file line numberDiff line numberDiff line change
@@ -30,12 +30,14 @@ Heartbeat monitoring for endpoint instances can be configured in the configurati
3030

3131
Setting the endpoint to "Off" will prevent it from appearing on the endpoints overview screen and from affecting the dashboard.
3232

33-
NOTE: This is a configuration setting only and the endpoint itself may still be configured to send heartbeat messages.
33+
> [!NOTE]
34+
> This is a configuration setting only and the endpoint itself may still be configured to send heartbeat messages.
3435
3536
## Removing endpoints
3637

3738
When an endpoint has been decommissioned and should no longer be displayed in ServicePulse it can be removed. From the Endpoint Heartbeats screen, click the trash bin icon next to an endpoint's name to remove it from ServicePulse. The trash icon is only visible when displaying endpoint instances. It is not shown when displaying logical endpoints.
3839

39-
NOTE: This feature requires ServicePulse version 1.23 or higher and ServiceControl version 4.4 or higher.
40+
> [!NOTE]
41+
> This feature requires ServicePulse version 1.23 or higher and ServiceControl version 4.4 or higher.
4042
4143
![Remove endpoint](sp-remove-endpoint.png)

monitoring/heartbeats/index.md

+2-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@ redirects:
1313

1414
The Heartbeat plugin enables endpoint health monitoring by sending regular heartbeat messages from the endpoint to a ServiceControl instance. The ServiceControl instance keeps track of which endpoint instances are sending heartbeats and which ones are not.
1515

16-
NOTE: Even if an endpoint is able to send heartbeat messages, other failures may occur within the endpoint and its host that prevent it from performing as expected. For example, the endpoint may not be able to process incoming messages, or it may be able to send messages to the ServiceControl queue but not to another queue. [Performance metrics](/monitoring/metrics/) can be used to monitor the processing of messages within an endpoint.
16+
> [!NOTE]
17+
> Even if an endpoint is able to send heartbeat messages, other failures may occur within the endpoint and its host that prevent it from performing as expected. For example, the endpoint may not be able to process incoming messages, or it may be able to send messages to the ServiceControl queue but not to another queue. [Performance metrics](/monitoring/metrics/) can be used to monitor the processing of messages within an endpoint.
1718
1819
```mermaid
1920
graph LR

0 commit comments

Comments
 (0)