Improving Build Performance of LINE for iOS with Bazel

Over the years, the LINE for iOS source tree has grown to a size of hundreds of modules. As of late 2019, the project consists of more than 1.4 million lines of code, and it still doesn’t show any sign of stopping to increase. This in turn, tripped up the build times for all the developers who work on the project. In addition, as the project grew we started to see more unreproducible problems. For instance, the builds work locally but not on CI and vice versa. We took a step back and thought about how we can improve the performance and the reproducibility of our builds.

Using Circuit Breakers with Armeria

What is a circuit breaker? Suppose an unexpected failure occurs (For example, a network issue or a server crash) and a remote server is unable to respond to the request. If so, the client who made the request to the remote server will either wait for a response until a timeout occurs, consume resources, or …

Let’s Play with Reactive Streams on Armeria – Part 2

In the first part of this blog post, we took a look at the basic concepts of Reactive Streams. In part 2 of this blog post, I’d like to tell you about how we use Reactive Streams with Armeria. What’s Armeria? Armeria is an open-source asynchronous HTTP/2, RPC, REST client/server library based on Java 8, …

LINE Securities: Page Stack revisited

2 years ago I posted an article about why and how we achieved Smooth page transition with Page Stack. We adopted this approach for LINE Securities, and pushed it a little further. In this article, I am going to show you what we have done to improve it, and also what problems we are currently facing. Header …

【Team & Project】Meet the Team Developing the Verda Platform Using OpenStack and Kubernetes

「Team & Project」 takes a look at different departments within LINE’s development organization and introduces their roles and team structure, tech stacks, challenges that lie ahead, roadmaps, and more.
In this edition, we sat down to chat with members of the Verda Platform Development Team. Part of the Verda Department which in turn is under the IT Service Center (supervises all infrastructure), the team works on development for the Verda Platform.

Verda Platform Development Team at the zoom meeting

Who murdered my lovely Prometheus container in Kubernetes cluster?

This blog post is about an interesting experience I had while investigating and resolving a problem that happened in the Prometheus container which was still in the CrashLoopBackoff state. The phenomenon itself and the solution are obvious and simple; so simple that you may feel that it is not worth it to spend time on …

High-throughput distributed rate limiter

Production-grade systems usually consist of multiple interconnected components that depend on each other. Popularization of the microservice architectures in recent years has led to an increase in the number of components and their interconnectivity. To protect each component from overloading and guarantee overall system quality of service, rate limiters can be used. Many articles and …

Keeping up with ever-changing web development trends

Web Directions, a conference founded by John Allsopp and Maxine Sherrin in 2004, covers all facades of web and digital professionals such as web design, front-end and back-end development, information architecture, interaction design, product design, accessibility, product management, and other interesting topics. Most of the conferences have been held in Australia with the Web Directions …

A new challenge for LINE Timeline – 1

A feature called “Discover” and a new subscription model called “Follow” have been added to the LINE Timeline service. Although users are familiar with these features, we ended up writing this post because we wanted to share the parts that we had considered and made efforts on within these features. Starting with this introduction, we have planned a three-part series to bring you more detailed information.

How we developed and integrated ‘share’ module into LINE app – 2

In Part I, we defined the following six categories to share our experience, difficulties and solutions of the Share module development for LINE iOS and covered the first two categories.
In this Part II, we will cover the remaining four categories. We will continue our story with the thinking process we went through to implement a structure for easier maintenance and expansion, on top of meeting various requirements for many LINE services.