Foundatio.Repositories Save

Generic repositories

Project README

FoundatioFoundatio

Build status NuGet Version feedz.io Discord

Generic repository contract and implementations. Currently only implemented for Elasticsearch, but there are plans for other implementations.

Features

  • Simple document repository pattern
    • CRUD operations: Add, Save, Remove, Get
  • Supports patch operations
    • JSON patch
    • Partial document patch
    • Painless script patch (Elasticsearch)
    • Can be applied in bulk using queries
  • Async events that can be wired up and listened to outside of the repos
  • Caching (real-time invalidated before save and stored in distributed cache)
  • Message bus support (enables real-time apps sends messages like doc updated up to the client so they know to update the UI)
  • Searchable that works with Foundatio.Parsers lib for dynamic querying, filtering, sorting and aggregations
  • Document validation
  • Document versioning
  • Soft deletes
  • Auto document created and updated dates
  • Document migrations
  • Elasticsearch implementation
    • Plan to add additional implementations (Postgres with Marten would be a good fit)
  • Elasticsearch index configuration allows simpler and more organized configuration
    • Schema versioning
    • Parent child queries
    • Daily and monthly index strategies
  • Supports different consistency models (immediate, wait or eventual)
    • Can be configured at the index type or individual query level
  • Query builders used to make common ways of querying data easier and more portable between repo implementations
  • Can still use raw Elasticsearch queries
  • Field includes and excludes to make the response size smaller
  • Field conditions query builder
  • Paging including snapshot paging support
  • Dynamic field resolution for using friendly names of dynamically generated fields
  • Jobs for index maintenance, snapshots, reindex
  • Strongly typed field access (using lambda expressions) to enable refactoring
Open Source Agenda is not affiliated with "Foundatio.Repositories" Project. README Source: FoundatioFx/Foundatio.Repositories
Stars
79
Open Issues
4
Last Commit
1 month ago
License

Open Source Agenda Badge

Open Source Agenda Rating