README.md in grumlin-0.18.1 vs README.md in grumlin-0.19.0

- old
+ new

@@ -186,11 +186,19 @@ `Grumlin::Repository` also provides a set of generic CRUD operations: - `add_vertex(label, id = nil, **properties)` - `add_edge(label, id = nil, from:, to:, **properties)` - `drop_vertex(id)` - `drop_edge(id = nil, from: nil, to: nil, label: nil)` -- `upsert_vertex(label, id, create_properties: {}, update_properties: {})` -- `upsert_edge(label, from:, to:, create_properties: {}, update_properties: {})` + +and a few methods that emulate upserts: +- `upsert_vertex(label, id, create_properties: {}, update_properties: {}, on_failure: :retry, **params)` +- `upsert_edge(label, from:, to:, create_properties: {}, update_properties: {}, on_failure: :retry, **params)` +- `upsert_edges(edges, batch_size: 100, on_failure: :retry, **params)` +- `upsert_vertices(edges, batch_size: 100, on_failure: :retry, **params)` + +All of them support 3 different modes for error handling: `:retry`, `:ignore` and `:raise`. Retry mode is implemented +with [retryable](https://github.com/nfedyashev/retryable). **params will be merged to the default config for upserts +and passed to `Retryable.retryable`. In case if you want to modify retryable behaviour you are to do so. **Usage** To execute the query defined in a query block one simply needs to call a method with the same name: