GithubHelp home page GithubHelp logo

lulzzz / foundatio.repositories Goto Github PK

View Code? Open in Web Editor NEW

This project forked from foundatiofx/foundatio.repositories

0.0 1.0 0.0 2.72 MB

Generic repositories

License: Apache License 2.0

PowerShell 0.72% C# 99.28%

foundatio.repositories's Introduction

Foundatio

Build status NuGet Version Slack Status

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 indexes
    • 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
  • Automatic alias support right in the index type mappings
  • Aliases can be dynamic as well
  • Jobs for index maintenance, snapshots, reindex
  • Strongly typed field access (using lambda expressions) to enable refactoring

foundatio.repositories's People

Contributors

derekpitt avatar ejsmith avatar niemyjski avatar pwelter34 avatar randylsu avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.