Skip to content

foxminchan/BookWorm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

CI Coverage Duplicated Lines (%)

πŸ“– BookWorm: A Practical .NET Aspire Application

Introduction

⭐ BookWorm demonstrates the practical implementation of .NET Aspire in a cloud-native application. The project employs Domain-Driven Design (DDD) and Vertical Slice Architecture to organize the codebase effectively.

Project Goals

  • Developed a cloud-native application using .NET Aspire
  • Implemented Vertical Slice Architecture with Domain-Driven Design & CQRS
  • Enabled service-to-service communication with gRPC
  • Incorporated various microservices patterns
    • Utilized outbox and inbox patterns to manage commands and events
    • Implemented saga patterns for orchestration and choreography
    • Integrated event sourcing for storing domain events
    • Implemented a microservices chassis for cross-cutting concerns and service infrastructure
  • Implemented API versioning and feature flags for flexible application management
  • Set up AuthN/AuthZ with Keycloak
  • Implemented caching with HybridCache
  • Incorporated AI components:
    • Text embedding with Nomic Embed Text
    • Integrated a chatbot using Gemma 3
    • Standardized AI tools with MCP Tools
  • Configured CI/CD with GitHub Actions
  • Created comprehensive documentation:
    • Used OpenAPI for REST API & AsyncAPI for event-driven endpoints
    • Utilized EventCatalog for centralized architecture documentation
  • Established a testing strategy:
    • Conducted service unit tests
    • Established architecture testing strategy
    • Performed load testing with k6
    • Planned integration tests

Project Architecture

Project Architecture

Getting Started

Prerequisites

System Requirements

Important

AI components require an Nvidia GPU for local development. Email services use SendGrid in production and Mailpit locally.

Run the Application

  1. Clone the repository

    git clone [email protected]:foxminchan/BookWorm.git
  2. Change directory to the repository

    cd BookWorm
  3. Run the application

    make run

Warning

Docker or Podman must be running on your machine before starting the application.

Deploy the application

For detailed deployment instructions, please consult the deployment guide.

Event-Driven Architecture

Explore our event catalog for messaging patterns and API details.

Contributing

Contributions are welcome! Please read the contribution guidelines and code of conduct to learn how to participate.

Support

  • If you like this project, please give it a ⭐ star.
  • If you have any issues or feature requests, please create an issue.

License

This project is licensed under the MIT License - see the LICENSE file for details.