Projection management is a little bit weird


I am migrating some code to the new GRPC client and some things are a little bit weird:

  1. Deleting projections is not possible, but i guess you are working on that.
  2. When you create a projection you cannot pass all options, you have to create a projection and then update it.
  3. When you want to create a one-time projection you cannot pass in a name. But how can i then query the status?

What I would like to do:

  1. Create a one-time projection that emits events to a stream.
  2. Query the status and wait for completion (via polling)
  3. Query the events from the new stream and do some stuff.
  4. Delete the projection and the temporary stream.

Right now it is not possible.

It’s possible via the metadata :

You can truncate your process-stream and soft-delete it via it’s metadata stream.

It’ll be deleted from disk once it’s not in the head-partion file and you run a scavenge.

FYI: deleted events are still retrieved by subscribers of the $all stream (untill scavenged) - subscribed and reading any other stream after a soft-delete skips those events as you would expect

Yes, deleting the temporary stream is not the problem, but I cannot give a name to a one-time projection (which is possible over the UI) and therefore not query the status and also not delete the projection.

All these tasks seem to be possible over the UI, so it is only an API design or Client design issue.

I see - I’ll show myself out :face_with_hand_over_mouth:

Hi Sebastien,
Yes we are working on making the different gRPC client more complete and consistent accross stack.
Part of that is classifying client around their capabailites
( client being built by us or other kind folks for the stack we don’t officially support yet)

What client are you using ?

I am using the official .NET client.