Project

General

Profile

Actions

Idea #8964

closed

[SDKs] Design more idiomatic and convenient Go SDK

Added by Tom Clegg almost 8 years ago. Updated about 4 years ago.

Status:
Closed
Priority:
Normal
Assigned To:
-
Category:
SDKs
Target version:
-
Story points:
-

Description

Sketches of client code

(TBD)

Packages (which features go where)

(TBD)

Specific features

(TBD)


Related issues

Related to Arvados - Idea #9374: [Crunch2] [SDKs] Refactor duplicate code from crunch-dispatch and crunch-run into the Go SDKResolvedTom Clegg06/08/2016Actions
Related to Arvados - Idea #14467: [SDK] Merge Go ArvadosClient and arvados.Client and migrate to arvados.ClientNewActions
Actions #1

Updated by Tom Clegg almost 8 years ago

  • Description updated (diff)
  • Category set to SDKs
Some wish-list items:
  • stub API server (for testing client code without bringing up a real server)
  • stub Keep server
  • use more stdlib interfaces like Reader and Writer
  • create new client from env vars
  • create new client from config file
  • thread safety (and clear docs about which things are thread-safe)
  • configurable logging
  • no globals (should be able to run tests in parallel -- except, where necessary, "run test server"-like integration tests that rely on external state)
  • convenient event listener that automatically reconnects after failures (without missing any events) and offers a "timestamp of most recent message" function to test freshness
Actions #2

Updated by Tom Clegg almost 8 years ago

TBD: the existing SDK uses map[string]string for request bodies, so you can do things like "update 'state' attribute to 'Running', without touching other attributes". When we use real types for arvados database records, though, we send all attributes with every update request, which can result in unnecessary lost updates. A better way to avoid lost updates is to use Etag and If-Matches. This would have to be implemented on both the client side and the API side.

Actions #3

Updated by Peter Amstutz almost 7 years ago

  • Status changed from New to In Progress
Actions #4

Updated by Peter Amstutz over 5 years ago

  • Related to Idea #14467: [SDK] Merge Go ArvadosClient and arvados.Client and migrate to arvados.Client added
Actions #5

Updated by Tom Morris over 5 years ago

  • Release deleted (12)
Actions #6

Updated by Peter Amstutz about 4 years ago

  • Status changed from In Progress to Closed
Actions

Also available in: Atom PDF