Skip to content

Commit 5482c2e

Browse files
Remove the Temporal-based Go Server (#1059)
1 parent 97182ec commit 5482c2e

510 files changed

Lines changed: 216 additions & 180843 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,10 @@
11
---
2-
description: HTTP ErrorAndStatus handling and trust-boundary rules for server code
3-
globs: server/**/*.go
2+
description: Error handling and trust-boundary rules for Go integration code
3+
globs: server-zd/integ/**/*.go
44
alwaysApply: false
55
---
66

7-
# Server Error Handling
8-
9-
- API failures that reach Gin handlers should use
10-
`errors.ErrorAndStatus` from `github.com/superdurable/dex/service/common/errors`
11-
with an `dexpb.ErrorSubStatus` and HTTP status code.
12-
- Prefer constructors `NewErrorAndStatus` /
13-
`NewErrorAndStatusWithWorkerError` over ad-hoc status maps.
14-
- Propagate typed API errors to the handler boundary; do not invent parallel
15-
error envelopes for the same OpenAPI `ErrorResponse`.
16-
- Map bad client/SDK input to 4xx + an appropriate `ErrorSubStatus`; map
17-
infrastructure / unexpected failures to 5xx.
7+
# Go Integration Test Errors
188

199
## Never Ignore Errors
2010

@@ -32,5 +22,5 @@ alwaysApply: false
3222
- Values from HTTP requests, SDK/worker payloads, and any client-settable field
3323
are untrusted, even if marked internal.
3424
- Validate untrusted values with an error-returning helper and return an
35-
`InvalidInput`-style `ErrorAndStatus`. Never allow untrusted input to reach a
25+
input error. Never allow untrusted input to reach a
3626
`Must*` helper or panic path.
Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
---
2-
description: Go implementation conventions for the Dex server
3-
globs: server/**/*.go
2+
description: Go conventions for the server-zd integration suite
3+
globs: server-zd/integ/**/*.go
44
alwaysApply: false
55
---
66

7-
# Server Go Conventions
7+
# Go Integration Test Conventions
88

99
## File Ordering
1010

@@ -23,17 +23,8 @@ Leave generated code unchanged and keep tightly coupled subsystem clusters intac
2323

2424
## Pointers and Naming
2525

26-
- Within `server/service/interpreter/`, export every component type. Helper and
27-
value types that are not components may remain unexported.
28-
- Export constructors and methods called by another interpreter component,
29-
even when both components share the `interpreter` package.
30-
- Interpreter components may use `UnifiedContext` during construction but must
31-
not retain it. Pass the operation-scoped context explicitly to methods.
32-
- Handle every interpreter `Await` error immediately. After a successful
33-
`Await`, write synchronously without a redundant context check; otherwise
34-
check the context before mutating state.
3526
- Use `ptr.Any(value)` for pointer literals. Import
36-
`github.com/superdurable/dex/service/common/ptr`.
27+
`github.com/superdurable/dex/sdk-go/dex/ptr`.
3728
- Give numeric literals explicit types, such as `ptr.Any(int64(0))`.
3829
- Do not use `ptr.Any` when the pointer must alias a named variable used elsewhere.
3930
- Do not call `proto.Clone` (or other defensive deep copies) "just in case".
Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,37 @@
11
---
2-
description: Server test execution and async test conventions
3-
globs: server/**/*
2+
description: Go integration test execution and async test conventions
3+
globs: server-zd/integ/**/*
44
alwaysApply: false
55
---
66

7-
# Server Testing
7+
# Go Integration Testing
88

99
## Execution
1010

1111
- After every code change, run tests through the Makefile, never bare `go test`
1212
for full suites.
1313
- Always tee output:
14-
`make -C server <target> 2>&1 | tee /tmp/test-<scope>.log`.
15-
- Targets: `unitTests` for unit tests; `integTests` / `temporalIntegTests` /
16-
`cadenceIntegTests` for integration; `ci-all-tests` for the CI matrix.
14+
`make -C server-zd/integ <target> 2>&1 | tee /tmp/test-<scope>.log`.
15+
- Targets: `compile`; `zdIntegTests`; `zdAttributeSyncIntegTests` for PostgreSQL integration.
1716
- Fix all failures. After multiple unsuccessful attempts, report the failure,
1817
attempted fixes, and exact blocker.
1918

2019
## Do Not Casually Skip Failing Tests
2120

2221
- Never skip, gate, or early-return around a failing assertion just to make the
23-
suite green (e.g. `if backend == Cadence { return }` / `t.Skip` for a known
22+
suite green (e.g. `t.Skip` for a known
2423
flake) unless the user explicitly asks to skip.
25-
- When a test fails: add targeted logs, dump Temporal/Cadence workflow history
26-
(and relevant query/describe output), identify the root cause, then fix
24+
- When a test fails: add targeted logs, inspect server-zd logs
25+
(and relevant API output), identify the root cause, then fix
2726
product code or the test expectation.
2827
- Backend-specific skips need a proven platform limitation plus user agreement;
2928
prefer fixing Reset/query/retry behavior over hiding the path.
3029

3130
## Isolation and Async
3231

3332
- Prefer package-level isolation so tests can run in parallel across packages.
34-
- Use unique workflow IDs / namespaces per test when sharing a Temporal/Cadence
35-
stack.
33+
- Use unique workflow IDs / namespaces per test when sharing a server-zd
34+
instance.
3635
- Use `require.Eventually` or polling for convergence. Do not use `time.Sleep`
3736
except inside the behavior under test.
3837
- Put expensive shared setup (docker stacks, shared workers) in `TestMain` when

‎.cursor/rules/planning.mdc‎

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,10 @@ Every implementation plan must include all three sections below. Use
1111
## Tests
1212

1313
- List specific integration and E2E scenarios and why each is needed.
14-
- Default to integration tests in `server/integ/` and the relevant SDK integ
14+
- Default to integration tests in `server-zd/integ/` and the relevant SDK integ
1515
suites (`sdk-go/integ/`, Java/Python test stacks).
1616
- Do not propose unit tests unless explicitly requested or the edge case cannot
1717
be reached through integration/E2E paths.
18-
- Cluster or multi-backend features should cover Temporal and Cadence when both
19-
are affected.
2018

2119
## Documentation
2220

‎.cursor/rules/project-core.mdc‎

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ alwaysApply: true
55

66
# Dex Project Rules
77

8-
Dex is a durable workflow framework: Go server (`server/`), OpenAPI IDL
8+
Dex is a durable workflow framework: Rust server (`server-zd/`), OpenAPI IDL
99
(`protos/`), and SDKs/samples for Go, Java, and Python. See `README.md` for the
1010
module map.
1111

@@ -60,17 +60,6 @@ The docs site shell (navbar and footer in `docs/docusaurus.config.ts` and their
6060
zh-Hans translations) may link to company product pages. Content pages must
6161
still not describe downstream products.
6262

63-
## Temporal Skill Routing
64-
65-
- In this repository, use the `temporal-developer` skill only when changing or
66-
diagnosing `server/service/interpreter/**` requires Temporal runtime or SDK
67-
semantics.
68-
- Do not use it for other modules, SDKs, examples, docs, routine integration
69-
tests, or merely because Temporal, workflow, signal, query, worker,
70-
heartbeat, or `temporalIntegTests` is mentioned.
71-
- An explicit user request to use `temporal-developer` overrides this
72-
restriction.
73-
7463
## Dex SDK Skill Routing
7564

7665
- Before changing or reviewing `examples/**`, application code snippets in
@@ -144,8 +133,6 @@ backend and its configuration.
144133
- Preserve existing comments verbatim during refactors and move them with their
145134
code. If one becomes stale, update only outdated references while retaining
146135
every original detail and meaning.
147-
- The new-comment rules do not apply to `server/config/`; configuration comments
148-
should favor complete operational semantics.
149136
- Comments documenting function or method return values are exempt from the
150137
20-word limit and should describe complete return semantics.
151138
- Public SDK API documentation is exempt from the short-comment and

‎.cursor/rules/server-zd.mdc‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ alwaysApply: false
2424
- Local tests use the in-process s3mock or the in-memory object store, never
2525
MinIO.
2626

27-
### server-zd Rust conventions ported from the Server Go rules
27+
### server-zd Rust conventions ported from the Go rules
2828

2929
These rules restate the applicable Server Go rules for `server-zd/**`. The
3030
Rust table (R1–R19) still applies.

‎.dockerignore‎

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
cli/dexcli
44
bin/dexcli-tls-darwin-arm64
55
cli/internal/command/testfixtures/registered-type-names/mainpackage/mainpackage
6-
server/dex-server
76
web/node_modules/
87
web/assets/dist/
98
web/large-step-graph
@@ -39,8 +38,5 @@ sdk-java/publication-smoke-test/target/
3938
sdk-typescript/coverage/
4039
sdk-python/coverage/
4140
sdk-go/coverage/
42-
server/coverage/
43-
server/coverage-raw/
44-
server/all-in-one/bin/
4541
script/licenseheaders/copyright/copyright
4642
web/dex-web

‎.github/scripts/dump-docker-logs.sh‎

Lines changed: 0 additions & 9 deletions
This file was deleted.

‎.github/workflows/check-gate-ci.yml‎

Lines changed: 15 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -29,17 +29,6 @@ jobs:
2929
if: github.event_name == 'pull_request'
3030
with:
3131
filters: |
32-
server:
33-
# Any-pattern matching makes a negation match every other file; use an extglob.
34-
- 'server/*'
35-
- 'server/!(all-in-one)/**'
36-
- 'protos/**'
37-
- '.github/scripts/dump-docker-logs.sh'
38-
- '.github/workflows/server-ci.yml'
39-
server_all_in_one:
40-
- 'server/**'
41-
- 'protos/**'
42-
- '.github/workflows/server-all-in-one-ci.yml'
4332
sdk_go:
4433
- 'sdk-go/**'
4534
- 'blob-cache-go/**'
@@ -142,18 +131,29 @@ jobs:
142131
- 's3mock/**'
143132
- 'protos/**'
144133
- '.github/workflows/server-zd-ci.yml'
134+
server_zd_integ:
135+
- 'sdk-go/**'
136+
- 'server-zd/**'
137+
- 'protos/**'
138+
- '.github/workflows/server-zd-integ-ci.yml'
145139
server_zd_simulation_runner:
146140
- 'script/server-zd-simulation-run.py'
147141
- 'script/test_server_zd_simulation_run.py'
148142
- '.github/workflows/server-zd-simulation-nightly.yml'
149143
- '.github/workflows/server-zd-simulation-runner-ci.yml'
150144
- 'Makefile'
151145
server_zd_image:
146+
- 'server-zd/LICENSE.md'
147+
- 'server-zd/LEGACY_NOTICES.md'
148+
- 'server-zd/LICENSES/**'
152149
- 'server-zd/Dockerfile'
153150
- '.dockerignore'
154151
- '.github/workflows/server-zd-image-release.yml'
155152
- '.github/workflows/server-zd-image-main.yml'
156153
server_zd_binary:
154+
- 'server-zd/LICENSE.md'
155+
- 'server-zd/LEGACY_NOTICES.md'
156+
- 'server-zd/LICENSES/**'
157157
- '.github/workflows/server-zd-binary-release.yml'
158158
server_zd_minio:
159159
- '.github/workflows/server-zd-minio-nightly.yml'
@@ -163,7 +163,6 @@ jobs:
163163
- 'examples/entity-store/**'
164164
generated_code:
165165
- 'protos/**'
166-
- 'server/gen/dexpb/**'
167166
- 'sdk-go/gen/dexpb/**'
168167
- 'sdk-java/src/main/java/io/superdurable/gen/**'
169168
- 'sdk-python/dex/dexpb/**'
@@ -184,7 +183,6 @@ jobs:
184183
- 'skills/**'
185184
- '.github/workflows/skills-ci.yml'
186185
copyright:
187-
- 'server/**'
188186
- 'cli/**'
189187
- 'sdk-go/**'
190188
- 'sdk-java/**'
@@ -212,8 +210,6 @@ jobs:
212210
REPO: ${{ github.repository }}
213211
HEAD_SHA: ${{ github.event.pull_request.head.sha || github.sha }}
214212
EVENT_NAME: ${{ github.event_name }}
215-
FILTER_SERVER: ${{ steps.filter.outputs.server }}
216-
FILTER_SERVER_ALL_IN_ONE: ${{ steps.filter.outputs.server_all_in_one }}
217213
FILTER_SDK_GO: ${{ steps.filter.outputs.sdk_go }}
218214
FILTER_SDK_RUST: ${{ steps.filter.outputs.sdk_rust }}
219215
FILTER_SDK_JAVA: ${{ steps.filter.outputs.sdk_java }}
@@ -227,6 +223,7 @@ jobs:
227223
FILTER_EXAMPLES_RUST: ${{ steps.filter.outputs.examples_rust }}
228224
FILTER_S3MOCK: ${{ steps.filter.outputs.s3mock }}
229225
FILTER_SERVER_ZD: ${{ steps.filter.outputs.server_zd }}
226+
FILTER_SERVER_ZD_INTEG: ${{ steps.filter.outputs.server_zd_integ }}
230227
FILTER_SERVER_ZD_SIMULATION_RUNNER: ${{ steps.filter.outputs.server_zd_simulation_runner }}
231228
FILTER_SERVER_ZD_IMAGE: ${{ steps.filter.outputs.server_zd_image }}
232229
FILTER_SERVER_ZD_BINARY: ${{ steps.filter.outputs.server_zd_binary }}
@@ -260,16 +257,13 @@ jobs:
260257
"Rust SDK CI"
261258
"TypeScript SDK CI"
262259
"S3mock CI"
263-
"Server CI"
264260
"Server ZD CI"
261+
"Server Integration against server-zd"
265262
"Server ZD Simulation Runner CI"
266-
"Server All-in-One CI"
267263
"Web CI"
268264
)
269265
else
270266
expected+=("CLA")
271-
[[ "$FILTER_SERVER" == "true" ]] && expected+=("Server CI")
272-
[[ "$FILTER_SERVER_ALL_IN_ONE" == "true" ]] && expected+=("Server All-in-One CI")
273267
[[ "$FILTER_SDK_GO" == "true" ]] && expected+=("Go SDK CI")
274268
[[ "$FILTER_SDK_RUST" == "true" ]] && expected+=("Rust SDK CI")
275269
[[ "$FILTER_SDK_JAVA" == "true" ]] && expected+=("Java SDK CI")
@@ -283,6 +277,7 @@ jobs:
283277
[[ "$FILTER_EXAMPLES_RUST" == "true" ]] && expected+=("Rust examples CI")
284278
[[ "$FILTER_S3MOCK" == "true" ]] && expected+=("S3mock CI")
285279
[[ "$FILTER_SERVER_ZD" == "true" ]] && expected+=("Server ZD CI")
280+
[[ "$FILTER_SERVER_ZD_INTEG" == "true" ]] && expected+=("Server Integration against server-zd")
286281
[[ "$FILTER_SERVER_ZD_SIMULATION_RUNNER" == "true" ]] && expected+=("Server ZD Simulation Runner CI")
287282
[[ "$FILTER_SERVER_ZD_IMAGE" == "true" ]] && expected+=("Server ZD image release")
288283
[[ "$FILTER_SERVER_ZD_BINARY" == "true" ]] && expected+=("Server ZD binary release")
@@ -294,7 +289,7 @@ jobs:
294289
[[ "$FILTER_COPYRIGHT" == "true" ]] && expected+=("Copyright")
295290
fi
296291
297-
# ci:fast-merge stops the existing Temporal/Cadence engine, SDK, CLI, Web, and examples
292+
# ci:fast-merge stops the SDK, CLI, Web, and examples
298293
# suites from blocking the merge. They still run on the pull request and on main.
299294
# The SDK suites on server-zd are non-blocking too; Server ZD CI still blocks.
300295
if [[ "$EVENT_NAME" == "pull_request" && "$IS_FAST_MERGE" == "true" ]]; then
@@ -306,8 +301,6 @@ jobs:
306301
"Python SDK CI"
307302
"Rust SDK CI"
308303
"TypeScript SDK CI"
309-
"Server CI"
310-
"Server All-in-One CI"
311304
"Web CI"
312305
"Go examples CI"
313306
"Java examples CI"

‎.github/workflows/cli-release.yml‎

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@ jobs:
4343
cache-dependency-path: |
4444
cli/go.sum
4545
web/go.sum
46-
server/go.sum
4746
- name: Resolve version
4847
id: version
4948
shell: bash

0 commit comments

Comments
 (0)