Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for Stream Transactions #322

Closed
DiscoPYF opened this issue May 18, 2021 · 3 comments · Fixed by #323 or #325
Closed

Add support for Stream Transactions #322

DiscoPYF opened this issue May 18, 2021 · 3 comments · Fixed by #323 or #325
Labels
enhancement New feature or request

Comments

@DiscoPYF
Copy link
Collaborator

DiscoPYF commented May 18, 2021

We currently have support for js-transactions only, in TransactionApiClient. The transactions API of ArangoDB also supports streaming transactions, which are a different kind of transactions from js-transactions.

HTTP Interface for Transactions
https://www.arangodb.com/docs/stable/http/transaction.html

HTTP Interface for Stream Transactions
https://www.arangodb.com/docs/stable/http/transaction-stream-transaction.html

@DiscoPYF DiscoPYF added the enhancement New feature or request label May 18, 2021
@DiscoPYF
Copy link
Collaborator Author

The way I see it, we should be able to update ITransactionApiClient and the TransactionApiClient implementation with methods that mirror the HTTP endpoints for begin/check/commit/abort/list operations. Keeping js and streaming transactions methods together in the same transaction client will be easier for consumers.

DiscJockeyDJ pushed a commit to DiscJockeyDJ/arangodb-net-standard that referenced this issue Jun 4, 2021
@DiscoPYF DiscoPYF linked a pull request Jun 4, 2021 that will close this issue
DiscJockeyDJ added a commit to DiscJockeyDJ/arangodb-net-standard that referenced this issue Jun 7, 2021
@DiscoPYF DiscoPYF changed the title Add support for streaming transactions Add support for Stream Transactions Jun 14, 2021
DiscJockeyDJ added a commit to DiscJockeyDJ/arangodb-net-standard that referenced this issue Jun 16, 2021
For Arango 3.4, filter and exclude the StreamTransaction tests using Xunit Trait.

fix ArangoDB-Community#322
DiscJockeyDJ added a commit to DiscJockeyDJ/arangodb-net-standard that referenced this issue Jun 16, 2021
For Arango 3.4, filter and exclude the StreamTransaction tests using Xunit Trait.

fix ArangoDB-Community#322
DiscJockeyDJ added a commit to DiscJockeyDJ/arangodb-net-standard that referenced this issue Jun 21, 2021
Refactored the TransactionApiClient and its test class.

Created a new class StreamTransactionResponse.

fix ArangoDB-Community#322
DiscJockeyDJ added a commit to DiscJockeyDJ/arangodb-net-standard that referenced this issue Jun 25, 2021
Refactored TransactionApiClientTest and StreamTransactionBody class.

fix ArangoDB-Community#322
@DiscoPYF
Copy link
Collaborator Author

DiscoPYF commented Jul 4, 2021

As discussed separately with @DiscJockeyDJ , this work is split in a series of pull requests. The first one added the methods for the stream transaction API endpoints. A subsequent pull request will be opened to allow speciying the transaction ID in other API operations.

@DiscoPYF DiscoPYF reopened this Jul 4, 2021
DiscJockeyDJ added a commit to DiscJockeyDJ/arangodb-net-standard that referenced this issue Jul 14, 2021
DiscJockeyDJ added a commit to DiscJockeyDJ/arangodb-net-standard that referenced this issue Aug 3, 2021
Added a new class HeaderProperties with TransactionId as the property.

fix ArangoDB-Community#322
DiscJockeyDJ added a commit to DiscJockeyDJ/arangodb-net-standard that referenced this issue Aug 4, 2021
DiscJockeyDJ added a commit to DiscJockeyDJ/arangodb-net-standard that referenced this issue Aug 16, 2021
Refactored the method to get HeaderCollection.

Added test to verify header properties.

fix ArangoDB-Community#322
rossmills99 pushed a commit that referenced this issue Aug 20, 2021
#325)

* Implement changes to Cursor API to include the stream transaction id to the request headers.

fix #322

* Removed stream transaction Ids for DeleteCursor and PutCursor APIs.

Added a new class HeaderProperties with TransactionId as the property.

fix #322

* Reinstated the missed out ConfigureAwait for the end points.

fix #322

* Renamed the HeaderProperties to CursorHeaderProperties.

Refactored the method to get HeaderCollection.

Added test to verify header properties.

fix #322
@DiscoPYF
Copy link
Collaborator Author

Some methods of the Cursor API were updated to allow specifying a transaction ID. Reopening the issue to address remaining APIs in subsequent pull requests.

@DiscoPYF DiscoPYF reopened this Aug 20, 2021
DiscJockeyDJ added a commit to DiscJockeyDJ/arangodb-net-standard that referenced this issue Sep 2, 2021
DiscJockeyDJ added a commit to DiscJockeyDJ/arangodb-net-standard that referenced this issue Sep 3, 2021
DiscJockeyDJ added a commit to DiscJockeyDJ/arangodb-net-standard that referenced this issue Sep 13, 2021
Moved the TransactionId header string to a constant class.

fix ArangoDB-Community#322
DiscJockeyDJ added a commit to DiscJockeyDJ/arangodb-net-standard that referenced this issue Sep 15, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
1 participant