Presentation: Digital Publishing for Scale: The Economist and Go
Share this on:
What You’ll Learn
-
Learn about the pros and cons of leveraging Go as a development platform.
-
Hear about strategies for decomposition of a monolith into Go Microservices.
-
Understand how Go address concurrency and how it can benefit you.
Abstract
The Economist newspaper was first printed in 1843. Since then, readers consume news in rapidly evolving ways and technology has taken the forefront in delivering content and enabling the severe contest between intelligence, which presses forward, and an unworthy, timid ignorance obstructing our progress.
To meet these challenges, The Economist restructured its platforms for digital delivery by breaking down a monolithic CMS and adopting a distributed, microservices architecture. The Economist implemented Go to write services responsible for delivering content across products and platforms. Go has enable the team to quickly adapt to business needs and scale for growing demand, but it has not been without its own challenges. This talk will cover the struggles and victories in transitioning to Go and how Go has uniquely fit The Economist’s digital publishing goals.
Would you describe your work at The Economist?
I am the lead engineer for the content platform team at The Economist. We deliver content to different products within The Economist (as well as to our external consumers). Our team is responsible for adding new features to the content platform thereby helping the business build new products.
Technically, it is a distributed platform, that is DevOps heavy. We use the Go language for coding applications. On the frontend, we have a Rest API but we also use GraphQL for some of the advanced queries. We use Elasticsearch for indexing and linking content.
What is the motivation for your talk, Digital Publishing for Scale: The Economist and Go?
At The Economist we moved from a traditional monolith Drupal CMS architecture to a distributed system implemented using the Go programming language. I want to share this experience, and talk about some interesting use cases, where using Go helped us. I would also like to highlight the use cases where it was not a good fit.
Who is the target audience for this talk?
It is mostly for developers who are interested in the Go programming language and have considered using it. I will talk about some of the well-known benefits of Go, together with some of the lesser known features, which we found useful.
I will also talk about the overall framework, and how we moved from a monolith to a distributed architecture. Architects may find this part of the talk interesting.
What can a developer expect to take away from this talk?
The talk will be helpful for developers who are interested in Go but haven't work with it much before, as well as developers looking to breakdown systems into smaller, scalable components. I will show how many features of the language help developing scalable platforms, such as Go's built in concurrency support.
The talk will give both the pros and cons of using Go. So on the downside, I will demonstrate a scenario which was easier to implement in JavaScript as compared to Go.
Similar Talks
Tracks
-
Microservices: Patterns & Practices
Evolving, observing, persisting, and building modern microservices
-
Developer Experience: Level up Your Engineering Effectiveness
Improving the end to end developer experience - design, dev, test, deploy, operate/understand. Tools, techniques, and trends.
-
Modern Java Reloaded
Modern, Modular, fast, and effective Java. Pushing the boundaries of JDK 9 and beyond.
-
Modern User Interfaces: Screens and Beyond
Zero UI, voice, mobile: Interfaces pushing the boundary of what we consider to be the interface
-
Practical Machine Learning
Applied machine learning lessons for SWEs, including tech around TensorFlow, TPUs, Keras, Caffe, & more
-
Ethics in Computing
Inclusive technology, Ethics and politics of technology. Considering bias. Societal relationship with tech. Also the privacy problems we have today (e.g., GDPR, right to be forgotten)
-
Architectures You've Always Wondered About
Next-gen architectures from the most admired companies in software, such as Netflix, Google, Facebook, Twitter, Goldman Sachs
-
Modern CS in the Real World
Thoughts pushing software forward, including consensus, CRDT's, formal methods, & probalistic programming
-
Container and Orchestration Platforms in Action
Runtime containers, libraries, and services that power microservices
-
Finding the Serverless Sweetspot
Stories about the pains and gains from migrating to Serverless.
-
Chaos, Complexity, and Resilience
Lessons building resilient systems and the war stories that drove their adoption
-
Real World Security
Practical lessons building, maintaining, and deploying secure systems
-
Blockchain Enabled
Exploring Smart contracts, oracles, sidechains, and what can/cannot be done with blockchain today.
-
21st Century Languages
Lessons learned from languages like Rust, Go-lang, Swift, Kotlin, and more.
-
Empowered Teams
Safely running inclusive teams that are autonomous and self-correcting