Skip to content

Commit 96e4955

Browse files
committed
feat: initialize Docusaurus website with configuration, documentation, and styling
1 parent 8be5101 commit 96e4955

31 files changed

Lines changed: 20148 additions & 4 deletions

.gitignore

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -420,5 +420,11 @@ FodyWeavers.xsd
420420
.idea
421421
samples/**/src/**/appsettings.local.json
422422

423+
# Docusaurus website
424+
website/node_modules/
425+
website/build/
426+
website/.docusaurus/
427+
website/.cache-loader/
428+
423429
# macOS
424430
.DS_Store

RELEASE_NOTES.md

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
# v1.1.2 — OpenTelemetry
2+
3+
**Release date:** 2026-06-09
4+
5+
## Summary
6+
7+
OpenTelemetry instrumentation is now a first-class citizen in Ratatosk. This release introduces a new package `Ratatosk.Extensions.OpenTelemetry` along with comprehensive tracing and metrics support across the client facade, the connectors layer, and each individual channel connector.
8+
9+
## New Package
10+
11+
- **`Ratatosk.Extensions.OpenTelemetry`** — Convenience extensions for wiring up Ratatosk's telemetry sources into OpenTelemetry. Provides `AddRatatoskInstrumentation()` methods on `TracerProviderBuilder` and `MeterProviderBuilder`, and a `WithOpenTelemetry()` shortcut on `MessagingBuilder`.
12+
13+
## Tracing (ActivitySources)
14+
15+
- `Ratatosk.Client` — spans from the `IMessagingClient` facade covering send, receive, and status operations.
16+
- `Ratatosk.Connector.*` — per-connector spans (Twilio, SendGrid, Firebase, Facebook, Telegram) for fine-grained observability.
17+
18+
## Metrics (Meters)
19+
20+
- `Ratatosk.Client` — client-level counters and histograms (sent count, send duration, etc.).
21+
- `Ratatosk.Connector.*` — per-connector metrics (sent/received/failed counts, latency histograms).
22+
- New `ConnectorMeter` utility class for consistent meter naming across connectors.
23+
24+
## New Request Classes
25+
26+
- `SendRequest`, `ReceiveRequest`, `ReceiveStatusRequest`, `StatusRequest`, `BatchSendRequest` — strongly-typed request objects that carry operation parameters and telemetry context, enabling richer activity tracking.
27+
28+
## Telemetry Infrastructure
29+
30+
- `ClientTelemetry` — centralized telemetry coordination for the messaging client.
31+
- `ConnectorTelemetry` — per-connector telemetry implementation handling activities and metrics.
32+
- `MessagingSemanticConventions` — semantic convention constants for messaging attributes (messaging system, destination name, operation type, etc.).
33+
- `MessageContext` — context object for attaching trace information to message delivery.
34+
35+
## Other
36+
37+
- `ChannelConnectorBase` refactored to integrate with new telemetry infrastructure.
38+
- `MessagingClient` significantly refactored to leverage request classes and centralized telemetry.
39+
- New test projects: OpenTelemetry extension tests, connector telemetry tests.
40+
- New documentation: `docs/telemetry.md` — comprehensive telemetry guide.
41+
- Updated `ROADMAP.md` and `README.md`.
42+
- Solution file updated to include the new package.
43+
44+
## Full Changelog
45+
46+
```
47+
eb200be feat: add OpenTelemetry support for tracing and metrics in Ratatosk framework
48+
ef97672 feat: add ConnectorMeter utility for consistent meter naming in telemetry
49+
88b3c91 feat: enhance telemetry metrics with message count and improve activity scope management
50+
7f1b2e4 feat: enhance telemetry with additional messaging attributes and improve activity tracking
51+
9a39bf6 feat: enhance telemetry metrics for message sending, receiving, and status queries
52+
4b9af24 feat: introduce request classes for messaging operations and enhance telemetry context handling
53+
```
54+
55+
**Files changed:** 36 files, +3,089 / −681

docs/README.md

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,15 @@
1+
---
2+
slug: /
3+
---
4+
15
[![NuGet](https://img.shields.io/nuget/v/Ratatosk.Abstractions.svg?label=NuGet)](https://www.nuget.org/packages/Ratatosk.Abstractions/)
26
[![codecov](https://codecov.io/gh/deveel/ratatosk/graph/badge.svg)](https://codecov.io/gh/deveel/ratatosk)
3-
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)
7+
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://github.com/deveel/ratatosk/blob/main/LICENSE)
48
[![.NET](https://img.shields.io/badge/.NET-8.0%20%7C%209.0%20%7C%2010.0-512BD4)](https://dotnet.microsoft.com/)
59
[![Documentation](https://img.shields.io/badge/docs-available-blue)](https://ratatosk.deveel.org)
610

711
<p align="center">
8-
<img src="ratatosk-full-logo.png" alt="Ratatosk" width="400"/>
12+
<img src="/img/ratatosk-full-logo.png" alt="Ratatosk" width="400"/>
913
</p>
1014

1115
# Ratatosk
@@ -89,7 +93,7 @@ The framework is deliberately focused on the messaging contract and connector co
8993
- [Senders](senders/README.md) - sender identity guides and navigation hub
9094
- [Sender management](senders/sender-management.md) - sender identity model, registry lifecycle, storage options, and governance
9195
- [Sender resolution](senders/sender-resolution.md) - runtime sender lookup, fallback behavior, cache, and diagnostics
92-
- [IMessagingClient facade](quickstart.md#6-imessagingclient-facade) — high-level client with lazy initialization and named channel routing
96+
- [IMessagingClient facade](quickstart.md#5-advanced-resolution-strategies) — high-level client with lazy initialization and named channel routing
9397

9498
**Building and wiring:**
9599

docs/installation.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ builder.Services
5959

6060
`AddMessaging()` returns a `MessagingBuilder` instance. Each `AddConnector<T>()` call registers the connector as a singleton in DI and also registers the connector's schema in the `IChannelSchemaRegistry`. Connectors are resolved as `IChannelConnector` from DI.
6161

62-
Call `.AddClient()` on the builder to register the `IMessagingClient` facade, which handles lazy connector initialization and channel routing (see [Quickstart](quickstart.md#6-imessagingclient-facade)).
62+
Call `.AddClient()` on the builder to register the `IMessagingClient` facade, which handles lazy connector initialization and channel routing (see [Quickstart](quickstart.md#5-advanced-resolution-strategies)).
6363

6464
### What AddMessaging registers
6565

docs/roadmap.md

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
# Roadmap
2+
3+
The project roadmap is tracked in the repository root as [ROADMAP.md](https://github.com/deveel/ratatosk/blob/main/ROADMAP.md).
4+
5+
## Summary
6+
7+
### v0.4.0 — Framework Foundations ✓
8+
Strengthens quality gates, release automation, observability, and docs completeness.
9+
10+
### v0.5.0 — Inbound Messaging ✓
11+
Completes the receive-side model for bidirectional messaging.
12+
13+
### v1.0.0 — First Stable Release ✓
14+
Locks the public API and ships stable NuGet packages.
15+
16+
### v1.1.0 — Resilience & Observability
17+
Retry/circuit-breaker policies, OpenTelemetry signals, health checks, timeout controls.
18+
19+
### v1.2.0 — New SaaS Connectors
20+
Slack, Microsoft Teams, WhatsApp Business API, Viber, LINE.
21+
22+
### v1.3.0 — Protocol Connectors
23+
SMPP, SMTP, RCS, APNs (direct).
24+
25+
### v1.4.0 — Content Adaptation & Transcoding
26+
IContentTranscoder, built-in transcoders, SMS segmentation.
27+
28+
### v1.5.0 — Address & Number Validation
29+
E.164 normalization, HLR lookup, email validation.
30+
31+
### v1.6.0 — Tooling & Instrumentation
32+
dotnet new connector scaffold, diagnostic middleware.
33+
34+
### v2.0.0 — Conversations
35+
First-class conversation management with multi-channel support.
36+
37+
### v2.1.0 — Message Templates
38+
Provider-agnostic template model with local and server-side rendering.
39+
40+
For the full milestone-level detail, rationale, and dependency information, see [ROADMAP.md](https://github.com/deveel/ratatosk/blob/main/ROADMAP.md).

website/.gitignore

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
# Dependencies
2+
/node_modules
3+
4+
# Production
5+
/build
6+
7+
# Generated files
8+
.docusaurus
9+
.cache-loader
10+
11+
# Misc
12+
.DS_Store
13+
.env.local
14+
.env.development.local
15+
.env.test.local
16+
.env.production.local
17+
18+
npm-debug.log*
19+
yarn-debug.log*
20+
yarn-error.log*

website/README.md

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
# Website
2+
3+
This website is built using [Docusaurus](https://docusaurus.io/), a modern static website generator.
4+
5+
## Installation
6+
7+
```bash
8+
yarn
9+
```
10+
11+
## Local Development
12+
13+
```bash
14+
yarn start
15+
```
16+
17+
This command starts a local development server and opens up a browser window. Most changes are reflected live without having to restart the server.
18+
19+
## Build
20+
21+
```bash
22+
yarn build
23+
```
24+
25+
This command generates static content into the `build` directory and can be served using any static contents hosting service.
26+
27+
## Deployment
28+
29+
Using SSH:
30+
31+
```bash
32+
USE_SSH=true yarn deploy
33+
```
34+
35+
Not using SSH:
36+
37+
```bash
38+
GIT_USER=<Your GitHub username> yarn deploy
39+
```
40+
41+
If you are using GitHub pages for hosting, this command is a convenient way to build the website and push to the `gh-pages` branch.

website/docsearch.json

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
{
2+
"index_name": "ratatosk",
3+
"start_urls": ["https://ratatosk.deveel.org/docs/"],
4+
"sitemap_urls": ["https://ratatosk.deveel.org/sitemap.xml"],
5+
"selectors": {
6+
"lvl0": {
7+
"selector": "",
8+
"default_value": "Documentation"
9+
},
10+
"lvl1": "header h1",
11+
"lvl2": "article h2",
12+
"lvl3": "article h3",
13+
"lvl4": "article h4",
14+
"text": "article p, article li, article td"
15+
}
16+
}

0 commit comments

Comments
 (0)