ravendb_client's People
ravendb_client's Issues
Insert new document
Topology update should also update topology for selected database in documentstore and documentsession
The database topology exists separately, but related to, the cluster topology. Nodes participating in the database do not have to include all nodes in the cluster. Therefore, if a database is selected on either the DocumentStoreActor or the DocumentSession, or both, they need to ensure they are updating the database topology as well as the cluster topology.
Get a connection without https working
Currently the library connects via https with a client authentication certificate. Now it needs to connect without https for local development work.
Support proxies
Topology update should be stored immediately but instead must wait until next call to get_server_address
Tokio spawned tasks can't borrow self
because they may cross threads. This means a direct update from inside the task is impossible. However, awaiting the task's completion means we block the thread, causing problems for the other requests.
This might require another message type to allow the updating of the topology as a kind of callback.
Connect to a RavenDB instance
Get connected to a ravendb instance and pull the topology info using https and client certificate authentication.
Update stored server URLs based on retrieved topology information
RavenDB can be run in clusters. In this case a single URL will not do, but forcing the user to create a list of URLs for an entire cluster could be a problem. If the client library can infer the cluster URLs from the topology data, it can be periodically updated.
Cache documents locally in DocumentStore
The DocumentStore should cache documents locally to avoid running back to the server whenever possible, with cache invalidation rules being followed.
Need to find out if this just stores basic documents and handles putting them together for relationships, or if it stores pre-packed related documents where a sub-document is already a part of the higher one instead of the higher one holding id references. If it is the case that they're pre-merged, how are the keys and queries being stored for future use. If not the case, how is the library combining them on the fly and allowing for searches?
Caching different types locally in a deserialized manner can be done similarly to:
let filecabinet = AnyMap();
filecabinet.insert(HashMap<TypeA, type_a_struct>);
filecabinet.insert(HashMap<TypeB, type_b_struct);
Consider anymap, typemap, or manually implementing something with the Any trait.
Ensure correlation id is being pushed through entire execution chain
Current logging only shows the correlation id in some areas. Make sure it's actually getting pushed through the entire execution chain.
RUSTSEC-2021-0139: ansi_term is Unmaintained
ansi_term is Unmaintained
Details | |
---|---|
Status | unmaintained |
Package | ansi_term |
Version | 0.12.1 |
URL | ogham/rust-ansi-term#72 |
Date | 2021-08-18 |
The maintainer has adviced that this crate is deprecated and will not receive any maintenance.
The crate does not seem to have much dependencies and may or may not be ok to use as-is.
Last release seems to have been three years ago.
Possible Alternative(s)
The below list has not been vetted in any way and may or may not contain alternatives;
Dependency Specific Migration(s)
See advisory page for additional details.
Get document by id
Set up a timer to run while the DocumentStore is in memory that will periodically check topology updates
The C# client apparently checks for topology updates and other updates on a timer. Need to add this to the library.
Create RequestExecutor actor and handle to allow requests to be handled by an appropriate executor
Request executor should be built as an actor, allowing many to be created, and many handles per actor to be created and stored.
See: https://github.com/ravendb/ravendb/blob/v5.4/src/Raven.Client/Documents/DocumentStore.cs#L162-L196
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.