Google Spanner Support

Just a placeholder i know we talked about it long time ago.

It’s a great suggestion :slight_smile:

Any update on this? I’d love to reduce the number of databases we use, and Spanner is Stairwell’s preferred option.

Temporal doesn’t have enough expertise in Spanner to support it.

If anyone in the community wants to implement and maintain it, that would be great.

I’m happy to upstream something. Is there a guide to implementing a new backing store that I should consult?

Are you going to maintain this over time? How is this going to be tested? Without running scale and fault injection tests with each release, it is impossible to guarantee that a DB binding is production worthy.

Here is the code that implements persistence APIs as well as specific bindings.

Completely understood. If you’re open to taking regular patches as we find improvements, I’d rather keep the code with you than have it drift away over time. We already do significant testing on other Spanner workloads using the published emulator, so good coverage is something we could automate for most cases. As for scale tests, we’d be running those in our internal environments.

Temporal provides many extension points that user could extend the server funcationlity. One of them is custom data store: https://github.com/temporalio/temporal/blob/49b933c587ad0916932659802417523a5981076d/temporal/server_option.go#L152

You will use temporal server as library, and supply your custom data store implementation.
Here is an example of how to use authorizer extension point: https://github.com/temporalio/samples-server/blob/1ff2f62d8646de6b8d3e30c1a1e0d5893c6d4518/extensibility/authorizer/server/main.go#L51