Skip to content

ravendb/samples-library

Repository files navigation

The Library of Ravens

Build

Overview

The Library of Ravens solves the "architecture bloat" of managing separate databases by consolidating full-text and vector search into a single database. Instead of wrestling with data synchronization across multiple platforms, you get a unified search experience that keeps your infrastructure lean and your development cycle fast.

The app demonstrates robust integration patterns using Azure Storage Queues. By leveraging RavenDB’s change tracking and ETL services, the system ensures that critical library updates are never lost, providing architectural resilience.

Finally, the app addresses the "cloud tax" of high egress fees by utilizing ETags and native HTTP caching driven by RavenDB’s metadata. This approach significantly reduces the volume of data sent over the wire, slashing public cloud billing while providing a snappier, more responsive experience for the end user through efficient data reuse.

Built with RavenDB, Aspire, Azure Storage Queues, and Azure Functions.

image

Features used

The following RavenDB features are used to build the application:

  1. Include - loading related documents in one request
  2. Document Refresh - used for timeouts handling
  3. Azure Storage Queues ETL - used with the @Refresh feature to send information about expiring timeouts
  4. Vector Search - used for searching across similar books

Technologies

The following technologies were used to build this application:

  1. RavenDB
  2. .NET 10
  3. Aspire
  4. Azure Functions
  5. Azure Storage Queues
  6. SvelteKit

Run locally

If you want to run the application locally, please follow the steps:

  1. Check out the GIT repository
  2. Install prerequisites:
    1. .NET 10
    2. Aspire.dev
    3. nodejs
  3. Request a dev license and set it under RAVEN_LICENSE env variable
  4. Get the app running by opening /src/RavenDB.Samples.Library.sln and starting the Aspire AppHost project

Community & Support

If you spot a bug, have an idea or a question, please let us know by raising an issue or creating a pull request.

We do use a Discord server. If you have any doubts, don't hesitate to reach out!

Contributing

We encourage you to contribute! Please read our CONTRIBUTING for details on our code of conduct and the process for submitting pull requests.

License

This project is licensed with the MIT license.

About

A simple library system showing various capabilities of RavenDB

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Contributors