Skip to content

Update docs#136

Merged
foxminchan merged 1 commit into
mainfrom
docs/update-docs
Aug 31, 2025
Merged

Update docs#136
foxminchan merged 1 commit into
mainfrom
docs/update-docs

Conversation

@foxminchan

@foxminchan foxminchan commented Aug 31, 2025

Copy link
Copy Markdown
Owner

Pull Request Description

Checklist

  • My code follows the DDD principles
  • I've used the latest C# features and idioms
  • I've added/updated unit tests for business logic
  • Service boundaries are maintained (no cross-service direct dependencies)
  • Repository pattern is used for data access
  • Domain Events are used for cross-service communication
  • I've registered new services in AppHost project (if applicable)
  • I've updated both entities and DTOs (if applicable)

Summary by CodeRabbit

  • New Features

    • Documented Integration subdomain with MCP Tools service, Scheduler Service, and two new integration events for email cleanup and resend.
    • Added AsyncAPI specs for Scheduler and Notification services, plus OpenAPI for MCP Tools (JSON-RPC over HTTP with SSE).
  • Documentation

    • Major overhaul of Architecture Constraints and Solution Strategy with expanded patterns, trade-offs, and governance.
    • Updated EventCatalog (channels, domains, queries) and standardized non-production server descriptions.
    • Removed unused license key variables from environment examples.
  • Chores

    • Upgraded dependencies, including Marten.AspNetCore, TUnit, Verify.TUnit, and @mdx-js/react.

@foxminchan foxminchan self-assigned this Aug 31, 2025
@coderabbitai

coderabbitai Bot commented Aug 31, 2025

Copy link
Copy Markdown

Caution

Review failed

The pull request is closed.

Walkthrough

Dependency bumps for Marten.AspNetCore, TUnit, and Verify.TUnit; broad documentation overhaul and additions. New Integration subdomain docs, MCP Tools OpenAPI, Scheduler Service AsyncAPI and events, Notification Service AsyncAPI updates, plus numerous OpenAPI server description tweaks. Added EventCatalog channels, schemas, and MDX pages; removed two EventCatalog license env vars.

Changes

Cohort / File(s) Summary
Dependency version updates
Directory.Packages.props, docs/docusaurus/package.json
Bumped Marten.AspNetCore to 8.10.0; TUnit to 0.57.24; Verify.TUnit to 30.10.0; @mdx-js/react to ^3.1.1.
Architecture docs overhaul
docs/docusaurus/docs/02-architecture-constraints.mdx, docs/docusaurus/docs/04-solution-strategy.mdx
Major restructuring: new constraint tables, added sections for security, observability, CI/CD; expanded solution strategy with patterns, trade-offs, and diagrams.
EventCatalog env template
docs/eventcatalog/.env.exmaple
Removed EVENTCATALOG_LICENSE_KEY_OPENAPI and EVENTCATALOG_LICENSE_KEY_ASYNCAPI.
Notification Service AsyncAPI updates
docs/eventcatalog/asyncapi-files/notification-service.yml, docs/eventcatalog/domains/.../Orders/services/NotificationService/asyncapi-v1.yml
Added two channels and operations: notification-clean-up-sent-email, notification-resend-error-email; introduced corresponding schemas and messages; extended placeOrderCommand schema references.
Scheduler Service AsyncAPI (new)
docs/eventcatalog/asyncapi-files/scheduler-service.yml, docs/eventcatalog/domains/.../Integration/services/SchedulerService/asyncapi-v1.yml
Added AsyncAPI 3.0.0 specs defining RabbitMQ servers, channels, operations, base and derived integration-event schemas, messages.
Scheduler events docs and schemas (new)
docs/eventcatalog/domains/.../SchedulerService/events/*/index.mdx, docs/eventcatalog/domains/.../SchedulerService/events/*/schema.json
Added MDX docs and JSON Schemas for CleanUpSentEmailIntegrationEvent and ResendErrorEmailIntegrationEvent.
Notification events docs and schemas (new)
docs/eventcatalog/domains/.../Orders/services/NotificationService/events/*/index.mdx, docs/eventcatalog/domains/.../Orders/services/NotificationService/events/*/schema.json
Added MDX docs and JSON Schemas mirroring the two integration events for Notification Service.
Integration subdomain (new)
docs/eventcatalog/domains/Store/index.mdx, docs/eventcatalog/domains/Store/subdomains/Integration/index.mdx, docs/eventcatalog/domains/Store/subdomains/Integration/ubiquitous-language.mdx
Added Integration subdomain to Store, with overview, C4 diagram, patterns, tech stack, and vocabulary.
MCP Tools service (new)
docs/eventcatalog/domains/.../Integration/services/McpTools/index.mdx, docs/eventcatalog/domains/.../Integration/services/McpTools/openapi-v1.yml, docs/eventcatalog/openapi-files/mcp-tools-server.yaml, docs/eventcatalog/domains/.../Integration/services/McpTools/queries/GetMcpComponents/index.mdx
Added service docs and OpenAPI 3.1.1 for POST /mcp (JSON-RPC over HTTP with SSE); added query documentation and examples; updated shared OpenAPI file accordingly.
Scheduler channel doc (new)
docs/eventcatalog/channels/scheuler.{env}.events/index.mdx
Added channel documentation for scheduler.{env}.events with env parameterization.
Chat service tweak
docs/eventcatalog/domains/.../Catalog/services/ChatService/index.mdx
Updated sends from ListBooksQuery to GetMcpComponentsQuery.
OpenAPI server description updates
docs/eventcatalog/domains/.../*/*/openapi-v1.yml, docs/eventcatalog/openapi-files/*-api.yml
Standardized non-production server description text to “Non-production environment” across Basket, Catalog, Chat, Finance, Ordering, Rating services.

Sequence Diagram(s)

sequenceDiagram
  autonumber
  participant S as Scheduler Service
  participant EB as Event Bus (RabbitMQ)
  participant N as Notification Service

  rect rgba(230,246,255,0.5)
  note over S: Cron triggers job
  S->>S: Execute CleanUpSentEmailJob
  S->>EB: Publish CleanUpSentEmailIntegrationEvent
  EB-->>N: Deliver event
  N->>N: Remove sent email outbox records
  end

  rect rgba(245,235,255,0.5)
  note over S: Hourly retry window
  S->>S: Execute ResendErrorEmailJob
  S->>EB: Publish ResendErrorEmailIntegrationEvent
  EB-->>N: Deliver event
  N->>N: Parallel resend (max 5)
  N->>N: Log successes/failures
  end
Loading
sequenceDiagram
  autonumber
  participant C as Client
  participant M as MCP Tools Server (/mcp)
  participant R as Tool Registry
  participant Cat as Catalog Service

  rect rgba(232,255,241,0.5)
  note over C,M: JSON-RPC over HTTP + SSE (mcp-streamable-1.0)
  C->>M: POST /mcp {method, params, id, jsonrpc}
  M->>R: Resolve tool/prompt
  alt Tool requires catalog data
    M->>Cat: REST call (Refit)
    Cat-->>M: Data
  end
  M-->>C: SSE event: message {result}
  M-->>C: SSE event: complete
  end
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

Suggested labels

documentation

Poem

New clocks now chime at midnight’s gate,
They sweep the inbox, curate fate.
When emails stumble, retries sing,
While MCP streams do results bring.
Domains align, constraints in rows—
A catalog hums, the event bus flows.
Ship it. 🚀

Tip

🔌 Remote MCP (Model Context Protocol) integration is now available!

Pro plan users can now connect to remote MCP servers from the Integrations page. Connect with popular remote MCPs such as Notion and Linear to add more context to your reviews and chats.


📜 Recent review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

💡 Knowledge Base configuration:

  • MCP integration is disabled by default for public repositories
  • Jira integration is disabled by default for public repositories
  • Linear integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between f5cfb03 and 8999f2a.

⛔ Files ignored due to path filters (2)
  • docs/docusaurus/bun.lock is excluded by !**/*.lock
  • src/Aspire/BookWorm.AppHost/Container/keycloak/keycloakify/bun.lock is excluded by !**/*.lock
📒 Files selected for processing (40)
  • Directory.Packages.props (2 hunks)
  • docs/docusaurus/docs/02-architecture-constraints.mdx (1 hunks)
  • docs/docusaurus/docs/04-solution-strategy.mdx (15 hunks)
  • docs/docusaurus/package.json (1 hunks)
  • docs/eventcatalog/.env.exmaple (0 hunks)
  • docs/eventcatalog/asyncapi-files/notification-service.yml (4 hunks)
  • docs/eventcatalog/asyncapi-files/scheduler-service.yml (1 hunks)
  • docs/eventcatalog/channels/scheuler.{env}.events/index.mdx (1 hunks)
  • docs/eventcatalog/domains/Store/index.mdx (1 hunks)
  • docs/eventcatalog/domains/Store/subdomains/Catalog/services/ChatService/index.mdx (1 hunks)
  • docs/eventcatalog/domains/Store/subdomains/Catalog/services/ChatService/openapi-v1.yml (1 hunks)
  • docs/eventcatalog/domains/Store/subdomains/Catalog/services/ProductService/openapi-v1.yml (1 hunks)
  • docs/eventcatalog/domains/Store/subdomains/Catalog/services/RatingService/openapi-v1.yml (1 hunks)
  • docs/eventcatalog/domains/Store/subdomains/Integration/index.mdx (1 hunks)
  • docs/eventcatalog/domains/Store/subdomains/Integration/services/McpTools/index.mdx (1 hunks)
  • docs/eventcatalog/domains/Store/subdomains/Integration/services/McpTools/openapi-v1.yml (1 hunks)
  • docs/eventcatalog/domains/Store/subdomains/Integration/services/McpTools/queries/GetMcpComponents/index.mdx (1 hunks)
  • docs/eventcatalog/domains/Store/subdomains/Integration/services/SchedulerService/asyncapi-v1.yml (1 hunks)
  • docs/eventcatalog/domains/Store/subdomains/Integration/services/SchedulerService/events/CleanUpSentEmailIntegrationEvent/index.mdx (1 hunks)
  • docs/eventcatalog/domains/Store/subdomains/Integration/services/SchedulerService/events/CleanUpSentEmailIntegrationEvent/schema.json (1 hunks)
  • docs/eventcatalog/domains/Store/subdomains/Integration/services/SchedulerService/events/ResendErrorEmailIntegrationEvent/index.mdx (1 hunks)
  • docs/eventcatalog/domains/Store/subdomains/Integration/services/SchedulerService/events/ResendErrorEmailIntegrationEvent/schema.json (1 hunks)
  • docs/eventcatalog/domains/Store/subdomains/Integration/services/SchedulerService/index.mdx (1 hunks)
  • docs/eventcatalog/domains/Store/subdomains/Integration/ubiquitous-language.mdx (1 hunks)
  • docs/eventcatalog/domains/Store/subdomains/Orders/services/BasketService/openapi-v1.yml (1 hunks)
  • docs/eventcatalog/domains/Store/subdomains/Orders/services/FinanceService/openapi-v1.yml (1 hunks)
  • docs/eventcatalog/domains/Store/subdomains/Orders/services/NotificationService/asyncapi-v1.yml (4 hunks)
  • docs/eventcatalog/domains/Store/subdomains/Orders/services/NotificationService/events/CleanUpSentEmailIntegrationEvent/index.mdx (1 hunks)
  • docs/eventcatalog/domains/Store/subdomains/Orders/services/NotificationService/events/CleanUpSentEmailIntegrationEvent/schema.json (1 hunks)
  • docs/eventcatalog/domains/Store/subdomains/Orders/services/NotificationService/events/ResendErrorEmailIntegrationEvent/index.mdx (1 hunks)
  • docs/eventcatalog/domains/Store/subdomains/Orders/services/NotificationService/events/ResendErrorEmailIntegrationEvent/schema.json (1 hunks)
  • docs/eventcatalog/domains/Store/subdomains/Orders/services/NotificationService/index.mdx (2 hunks)
  • docs/eventcatalog/domains/Store/subdomains/Orders/services/OrderingService/openapi-v1.yml (1 hunks)
  • docs/eventcatalog/openapi-files/basket-api.yml (1 hunks)
  • docs/eventcatalog/openapi-files/catalog-api.yml (1 hunks)
  • docs/eventcatalog/openapi-files/chat-api.yml (1 hunks)
  • docs/eventcatalog/openapi-files/finance-api.yml (1 hunks)
  • docs/eventcatalog/openapi-files/mcp-tools-server.yaml (4 hunks)
  • docs/eventcatalog/openapi-files/ordering-api.yml (1 hunks)
  • docs/eventcatalog/openapi-files/rating-api.yml (1 hunks)
✨ Finishing Touches
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch docs/update-docs

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

CodeRabbit Commands (Invoked using PR/Issue comments)

Type @coderabbitai help to get the list of available commands.

Other keywords and placeholders

  • Add @coderabbitai ignore or @coderabbit ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

Status, Documentation and Community

  • Visit our Status Page to check the current availability of CodeRabbit.
  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@netlify

netlify Bot commented Aug 31, 2025

Copy link
Copy Markdown

Deploy Preview for bookwormdev canceled.

Name Link
🔨 Latest commit 8999f2a
🔍 Latest deploy log https://app.netlify.com/projects/bookwormdev/deploys/68b43a82762eef0008905a20

@github-actions

Copy link
Copy Markdown

Test Results

965 tests  ±0   965 ✅ ±0   8m 52s ⏱️ +3s
  8 suites ±0     0 💤 ±0 
  8 files   ±0     0 ❌ ±0 

Results for commit dd0b1df. ± Comparison against base commit f5cfb03.

- Introduced the Scheduler Service responsible for scheduling and triggering periodic tasks in the BookWorm e-commerce system.
- Added `ResendErrorEmailIntegrationEvent` schema and documentation to handle resending of failed emails.
- Created `CleanUpSentEmailIntegrationEvent` schema and documentation for cleaning up sent emails.
- Updated Notification Service to handle new integration events for email cleanup and resend operations.
- Enhanced OpenAPI specifications across various services to reflect non-production environment descriptions.
- Documented the ubiquitous language for the Integration subdomain, detailing key concepts and responsibilities.
@foxminchan
foxminchan marked this pull request as ready for review August 31, 2025 12:05
Copilot AI review requested due to automatic review settings August 31, 2025 12:05

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This pull request updates API documentation and documentation-related dependencies across the BookWorm platform. It focuses on improving OpenAPI specifications, expanding event catalog documentation with new scheduler service integration, and updating package versions.

  • Enhanced OpenAPI specifications with better descriptions and protocol updates (OpenAPI 3.0.1 to 3.1.1)
  • Added comprehensive scheduler service documentation with new integration events for email management
  • Updated testing and documentation dependencies to latest versions

Reviewed Changes

Copilot reviewed 40 out of 42 changed files in this pull request and generated 1 comment.

File Description
Various OpenAPI files Updated server descriptions and OpenAPI versions for better documentation clarity
Scheduler/Notification service docs Added new integration events for email cleanup and resend operations
Integration subdomain docs Created comprehensive documentation for new Integration subdomain with MCP Tools and Scheduler services
Package updates Updated Marten, TUnit, and other testing-related dependencies to latest versions

Comment thread docs/eventcatalog/channels/scheuler.{env}.events/index.mdx
@foxminchan
foxminchan merged commit 0daf7f5 into main Aug 31, 2025
11 of 12 checks passed
@foxminchan
foxminchan deleted the docs/update-docs branch August 31, 2025 12:08
@sonarqubecloud

Copy link
Copy Markdown

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants