The Challenge
Call migration platforms need more than a frontend and an API. Large files, sensitive credentials, long-running jobs and workflow state must be handled without creating operational bottlenecks or security risks. ZipZap needed to solve five problems:
- Reliable file storage: Audio, transcripts and generated records can be large, binary and shared across services.
- Credential protection: External integrations require safe handling of tokens, service keys and customer configuration.
- Asynchronous work: Migration, validation, indexing and audit tasks should not block user-facing requests.
- Workflow progress: The platform must track running jobs, processed calls, failures and retry needs.
- Consistent delivery: A multi-service backend needs repeatable container builds and central image storage.
Codimite's Solution
ZipZap is built as a service-oriented platform with separate API, job, indexer, audit and watchdog components. Each handles one part of managing integrations, processing call data and monitoring progress. Codimite mapped each responsibility to a managed Google Cloud service, instead of relying on one large backend.
Managed services with clear responsibilities
- Cloud Storage (file and artifact storage): Durable object storage for call files, generated artifacts, metadata exports and sample audio used across processing services.
- Secret Manager (credential and key protection): Secure storage and retrieval of integration credentials, service keys and infrastructure secrets, with versioned secret access.
- Pub/Sub (asynchronous communication): A message-driven backbone that lets the API, job, indexer, audit and watchdog services work without tight coupling.
- Firestore (workflow state tracking): A document-oriented state layer for users, jobs, calls, watchdog entries, progress, failures and retries.
- Cloud Build and Artifact Registry (build and delivery): Repeatable container builds and centralized image storage for packaging and promoting backend services consistently.
- Google sign-in (authentication): A familiar login flow that supports a simple, SaaS-style experience for business users.
How a request flows through the platform
The architecture keeps
user-facing requests separate from background
processing, while files, secrets and workflow status stay under Google Cloud management.
- Request: A user or integration starts a migration, validation or processing task.
- API layer: The API stores or references files and retrieves the secrets it needs.
- Pub/Sub: The API publishes background work for asynchronous processing.
- Workers: Job, indexer, audit and watchdog services process the call data.
- Firestore: Job, call and watchdog state, failures and retries are tracked.
Cloud Storage, Secret Manager, and Cloud Build with Artifact Registry support every step.
Business Impact
ZipZap shows how a focused cloud architecture can support a complex operational product. Splitting storage, secrets, messaging, state and delivery across managed Google Cloud services makes the platform easier to scale, operate and evolve as call migration and processing needs grow.
- Scalable file handling: Multiple services can store and access call-related assets without overloading databases or application servers.
- Stronger security posture: Sensitive integration credentials are kept separate from application code and ordinary workflow data.
- Reliable background processing: Long-running migration, indexing, verification and audit work runs asynchronously, with worker-level retry and scaling patterns.
- Improved workflow visibility: Firestore gives a structured place to track job progress, call status, failures and watchdog data.
- Cleaner multi-service delivery: Cloud Build and Artifact Registry support repeatable packaging for separate backend services.
- Better product experience: Google sign-in simplifies authentication for users.