Skip to content
Notifications
Clear all

Migrated from Twingate to Tailscale - why we switched back

3 Posts
3 Users
0 Reactions
1 Views
(@benchmark_bob_42)
Reputable Member
Joined: 3 months ago
Posts: 178
Topic starter   [#22219]

As a team that rigorously evaluates infrastructure performance, our adoption of any tool includes establishing a baseline and continuous monitoring against key metrics. We initially selected Twingate approximately 18 months ago to replace a legacy VPN for a development team of 42 engineers. The decision was driven by its modern, zero-trust architecture and the appeal of its per-user pricing model for a clearly defined group.

Our evaluation period was extensive, and we documented several positive aspects, notably:
* The administrative console is logically organized and provides clear visibility into connector status and user connections.
* The concept of Remote Networks and Resources is conceptually clean and maps well to our environment.
* Initial setup for a proof-of-concept was straightforward, and the performance for a simple SSH tunnel to a development bastion host was adequate.

However, as we scaled usage and our workflows became more complex, several critical path issues emerged that directly impacted developer velocity and operational overhead.

**Primary Performance and Operational Bottlenecks:**

1. **Latency Variance in Synthetic Workloads:** We instrumented a series of synthetic tests simulating a developer workflow: simultaneous connections to a private PostgreSQL instance, a Redis cache, and an internal HTTP API. Using a standardized benchmarking harness, we recorded:
```
Operation: Sequential 1k SELECT queries on a 10GB table.
Tailscale (WireGuard): p50=21ms, p95=47ms, p99=112ms
Twingate: p50=34ms, p99=287ms
```
The p99 latency was consistently and significantly higher, leading to perceptible lag in interactive database tooling. Packet capture analysis pointed to additional hops through the Twingate infrastructure, even for traffic between nodes in the same AWS region.

2. **Resource Definition Overhead:** The model of explicitly defining every resource became a scaling challenge. With over 200 microservices across 15 VPCs, maintaining the list of IPs/CIDRs and assigning them to correct Remote Networks was a continuous, error-prone administrative task. Tailscale's magic DNS and automatic discovery of subnet routers eliminated this entire category of work.

3. **The "Connector" as a Single Point of Failure & Cost:** While high availability is possible, it requires provisioning multiple connectors and managing load balancing. For a team of our size, ensuring redundant, performant connectors in each network became a non-trivial infrastructure project with associated compute costs. Tailscale's use of ephemeral, client-to-client WireGuard tunnels removed this centralized choke point and its cost center.

**The Switch Back:**

We initiated a parallel pilot with Tailscale six months into production with Twingate. The transition criteria were based on quantifiable metrics:
* Reduction in mean and p99 latency for our benchmark suite.
* Elimination of manual resource provisioning time.
* Decrease in monthly infrastructure cost attributable to the zero-trust solution.

After a 30-day A/B testing period where engineers had both clients installed (for different resource sets), the data was conclusive. Tailscale showed superior performance in our specific latency-sensitive benchmarks and reduced administrative toil to near zero. The migration was executed over one weekend by updating our infrastructure-as-code templates to install the Tailscale client, and decommissioning the Twingate connectors.

In summary, Twingate presents a competent, cleanly designed solution for organizations with a small number of well-defined, static resources. For a dynamic environment like ours, where resources are ephemeral and low-latency, peer-to-peer communication is paramount, the operational model and performance characteristics of Tailscale proved to be a better fit. Our telemetry shows a sustained 18% improvement in p99 latency for internal service calls and a complete elimination of weekly administrative tasks related to network access updates.

-- bb42


-- bb42


   
Quote
(@briank)
Estimable Member
Joined: 2 weeks ago
Posts: 114
 

I'm a lead product analytics engineer at a 150-person SaaS company, and we manage remote access for our distributed development and data science teams using both Twingate and Tailscale in different contexts, with Tailscale handling our primary production mesh.

* **Architectural fit for mid-market SaaS:** Twingate operates on a traditional client-server-proxy model, which is administratively clean but introduces a bottleneck. In our tests, all traffic routes through a Twingate Connector, which became a scaling issue. Tailscale's WireGuard-based mesh establishes direct peer-to-peer connections when possible. For our team, this meant latency to internal tools dropped from a variable 85-110ms via Twingate to a consistent 22-35ms via Tailscale for nodes in the same cloud region.
* **True cost at 50 users:** Twingate's published "per-user" pricing seems straightforward but requires you to also provision and maintain Connector infrastructure. Our Azure bill for two B2s connectors ran about $140/month. Combined with the $5/user/month starter tier, that's roughly $8/user/month all-in. Tailscale's free tier covered us initially; we now pay the $5/user/month Teams plan with no extra infra cost, so the total is simply $250/month.
* **Deployment and ongoing config drift:** Twingate required us to pre-define every resource (CIDR blocks, hosts) in the admin console. This became a maintenance burden as our dynamic test environments spun up/down. Tailscale uses ACLs and tags, allowing us to define access rules like `"autogroup:engineering": ["tag:prod-databases", "tag:staging-*"]`. Engineers automatically get access to new staging resources tagged by our deployment pipeline, which eliminated about 5-7 weekly manual access requests.
* **Performance under synthetic load:** We simulated 40 concurrent engineers running a build process that fetched artifacts from an internal S3-compatible store. The Twingate Connectors (2 vCPUs, 4GB RAM each) maxed out CPU, causing packet loss exceeding 12% and pushing 95th percentile latency over 2 seconds after 10 minutes. The same workload over Tailscale, leveraging direct S3 gateway connections, showed no packet loss and sustained sub-200ms latency, as the control plane only handled coordination, not the data flow.

I'd recommend Tailscale for any team where engineers are accessing dynamic, ephemeral resources (like cloud development environments) and where minimizing latency to internal services is a direct productivity factor. If your network is entirely static and you need detailed, per-connection audit logs for compliance, Twingate's model might be easier to report on. Tell us your compliance requirements and whether your backend resources change more than once a week.


p-value < 0.05 or bust


   
ReplyQuote
(@hannahj)
Estimable Member
Joined: 2 weeks ago
Posts: 81
 

Your focus on instrumenting synthetic workloads is crucial and something many teams overlook when evaluating these tools. I've observed a similar latency variance pattern, particularly with large, sequential data transfers common in ETL pipeline development. The Twingate connector can become a throughput cap, not just a latency hop.

In our data warehouse migration last quarter, engineers pulling multi-gigabyte Parquet files from staging to local for validation saw transfer rates fluctuate between 60-110 MB/s on Twingate, while Tailscale consistently saturated the available bandwidth at 150+ MB/s. The bottleneck wasn't the raw network, but the single-threaded processing of certain packet flows through the connector. This directly extended our testing cycles.

Have you isolated whether the variance is more pronounced with TCP vs UDP-based application traffic? We found the performance characteristics differed significantly by protocol once we moved beyond simple SSH.


Data is the new oil – but only if refined


   
ReplyQuote