nats-architecture-and-design
nats-architecture-and-design copied to clipboard
ObjectStore links/updates
Overview
This issue documents some updates made to the Go client object store implementation to handle some conditions reasonably.
updatethe meta of adeletedobject should not be allowed by the client.updatingthe meta to point to an already existing name should not be allowedputshould not allow setting themeta.linkinformation - this is only supported via thelinkAPIgetInfoshould not return info for deleted objects. Optional methods can be added to support getting info on deleted objects.listshould not return info for deleted objects. Optional methods can be added to support getting info on deleted objects.
ObjectStore ADR https://github.com/nats-io/nats.deno/commit/6164d014a3e19c4d75c1adcbafb141d6db86e118
Clients and Tools
- [x] Go @piotrpio
- [x] Java @scottf
- [X] JavaScript https://github.com/nats-io/nats.deno/commit/d85bbf55cfa70cee5f5651f1acdd605f3aae6b2a, https://github.com/nats-io/nats.deno/commit/6164d014a3e19c4d75c1adcbafb141d6db86e118
- [x] .Net @scottf
- [ ] C @levb
- [ ] Python @wallyqs
- [ ] Ruby @wallyqs
- [ ] Rust @Jarema @caspervonb
Other Tasks
- [ ] docs.nats.io updated @jnmoyne
- [x] Update ADR https://github.com/nats-io/nats-architecture-and-design/pull/158
- [ ] Update client features spreadsheet
Client authors please update with your progress. If you open issues in your own repositories as a result of this request, please link them to this one by pasting the issue URL in a comment or main issue description.
Object Store ADR-20 is here https://github.com/nats-io/nats-architecture-and-design/blob/main/adr/ADR-20.md
updating the meta to point to an already existing name should not be allowed
It's an error to update an object's name to an existing and not deleted object. You can update an objects name to an existing but deleted object.
put should not allow setting the meta.link information - this is only supported via the link API
The put method should check the incoming meta for a link and fail with error if it finds one.