A state-of-the-art solution built for a Temporal Hackathon to answer the critical compliance question: "How would you prove a GDPR deletion request had completed across every system?"
This prototype demonstrates how to replace fragile database-backed audit logging with Temporal's native, immutable Event History. Since Temporal guarantees workflow execution to completion and keeps a tamper-proof cryptographic-grade ledger of all activity states and inputs/outputs, it serves as the ultimate "Proof of Deletion" or "Certificate of Compliance".
+-----------------------+
| Streamlit Dashboard |
| (User & Audit UI) |
+-----------+-----------+
|
Starts | Queries Events &
Workflows | Compliance Certificates
v
+-----------------------+
| Temporal Server |
+-----------+-----------+
|
| Delivers Tasks
v
+-----------------------+
| Go Temporal Worker |
| (GDPR Orchesteration) |
+-----------+-----------+
|
+--------------------------+--------------------------+
| | |
v v v
+-----------------------+ +-----------------------+ +-----------------------+
| MaskBigQueryData | | MoveToSecureStorage | | VerifyDeletion |
| (BigQuery Masking) | | (Cold Storage/GCS) | | (Multi-System Scan) |
+-----------------------+ +-----------------------+ +-----------------------+
- Streamlit Dashboard (Python): The command center. Users submit deletion requests, and compliance officers explore the immutable verification timeline. It talks directly to the Temporal Cluster via the
temporalioPython SDK. - Temporal Orchestrator: Manages execution reliability. If the database is down or GCS is experiencing a transient error, Temporal auto-retries.
- Go Worker (Golang): Houses high-performance activities for BigQuery masking, GCS archival, and multi-system deletion validation.
You can run this entire self-contained ecosystem locally.
Ensure you have the Temporal CLI installed. In a separate terminal tab, run:
temporal server start-devThis runs the local cluster on localhost:7233 and opens the web UI at http://localhost:8080.
Navigate to the temporal-go directory, and run the worker:
cd temporal-go
go run cmd/worker/main.goThis starts the Go worker which subscribes to the gdpr-deletion-tasks task queue.
Open another terminal tab, navigate to the streamlit-dashboard directory, and run Streamlit using uv:
cd streamlit-dashboard
uv run streamlit run app.pyThis starts the dashboard and automatically opens your browser to http://localhost:8501.
- Golang: Native Temporal Go SDK used for executing workflows and activities. High-speed, robust backend layer.
- Python: Streamlit framework for real-time compliance rendering and reactive UX.
- Temporal: Guarantees 100% execution safety, automatic exponential retries for transient failures, and outputs a certified ledger of compliance.
- UV: Ultra-fast python packaging tool for clean virtual environments.