# Migrating from PHP to Go Page: https://stenobird.com/podcast/go-time-golang-software-engineering/migrating-from-php-to-go Text version: https://stenobird.com/podcast/go-time-golang-software-engineering/migrating-from-php-to-go.md Podcast: [Go Time: Golang, Software Engineering](https://stenobird.com/podcast/go-time-golang-software-engineering) Published: 2024-05-22T22:00:00+00:00 Episode link: https://changelog.com/gotime/316 Audio file: https://op3.dev/e/https://cdn.changelog.com/uploads/gotime/316/go-time-316.mp3 Processing state: processed JSON: https://stenobird.com/v1/public/podcasts/go-time-golang-software-engineering/episodes/migrating-from-php-to-go Duration seconds: 3578 ## Resource Engineers Matthew Boyle and Chris Shepherd share their firsthand experience transitioning services from PHP to Go at Curve and Cloudflare. The discussion covers the shift from a complete rewrite mindset to a gradual, incremental migration strategy. ## Highlights - Main idea: Avoid the trap of a total rewrite; instead, focus on building new features in Go while leaving legacy PHP code intact - Practical takeaway: Leverage Go's smaller runtime profile and improved developer experience to optimize high-traffic services - Failure mode: Be wary of the complexity introduced by managing secondary databases or read-replicas that may suffer from significant replication lag - Main idea: Modern LLMs can significantly accelerate the debugging process by interpreting complex compiler errors that previously required manual research - Practical takeaway: Use OpenAPI specifications and automated tools like Speakeasy to maintain consistent SDKs across different languages during a migration ## Topics PHP, Go, Software Migration, Microservices, API Development, Developer Experience, Cloud Computing, LLMs ## Chapters - 5:35 — The Incremental Migration Strategy: Discussing why the team moved away from a full rewrite in favor of building new components in Go while maintaining existing PHP services. - 10:00 — Debugging in the Age of LLMs: How modern AI tools have transformed the experience of interpreting complex error messages and compiler output. - 14:15 — Risks of Distributed Data: The challenges of managing data consistency and the dangers of replication lag in secondary databases. - 23:05 — Performance and Developer Experience: Comparing the resource footprint and debugging workflows between PHP and Go. - 27:25 — Automating API SDKs: A deep dive into using OpenAPI specs and Speakeasy to automate the generation and maintenance of SDKs. - 36:45 — The Role of AI in Project Structure: Exploring how AI can assist in architectural decisions and project scaffolding. - 50:25 — Modern Framework Scaffolding: Comparing the ease of project generation in PHP frameworks like Laravel to the Go ecosystem. ## Actions - request_transcript: `POST https://stenobird.com/v1/public/podcasts/go-time-golang-software-engineering/episodes/migrating-from-php-to-go/transcription-requests` — Idempotently request low-priority transcript generation for this episode. - read_markdown: `GET https://stenobird.com/podcast/go-time-golang-software-engineering/migrating-from-php-to-go.md` — Read the agent-friendly Markdown representation of this episode resource. A page view does not enqueue transcription. Agents should invoke `request_transcript` explicitly when they need this episode processed. ## Transcript Full transcripts are not published on public pages unless there is a clear rights basis.