As of October 1, 2023, LINE has been rebranded as LY Corporation. Visit the new blog of LY Corporation here: LY Corporation Tech Blog

Blog


Thank you for contributing to Armeria!

Hello to the readers! I'd like to share with you the first ever Armeria Contributor Reward Event and how it went. For this posting, I'm not going to elaborate on the technical aspects of Armeria. To learn more about its technology and features, please visit the official website for Armeria.

The Armeria project was initially developed by LINE but went to open source later. Even though the project was initiated by LINE, Armeria is where it is now thanks to participation from many passionate contributors. That is why we organized this Armeria Contributor Reward Event, to express our gratitude to all of the contributors.

Let me first give a quick summary of what open source contribution is.

What is open source contribution?

When a new project is launched at a company, the project team is formed with participants from different areas such as development, planning, business and design. The same applies to open source projects as open source projects can deliver good results when people with different backgrounds, not only programmers but also testers, marketers, designers and technical writers, work together. Some think, in the narrow sense, you contribute to open source only when your code is merged. However, as open source projects are not all about programming, as I mentioned earlier, all kinds of contributions matter for the growth and sustainability of open source projects. For example, you are an open source contributor if you bring in more contributors by giving presentations on an open source project, if you donate your talent of writing for documentation, if you offer new ideas to resolve an issue, if you report a bug or if you help out with a logo or UI design.

So, why does each and every contributor count in the world of open source? Why can't it be controlled solely by a project owner?

Why contribute to open source? - from project owner's perspective

When I talk to people who create open source projects, they tend to have a belief that projects are yet to be perfected and they can make them better with user feedback. Eric S. Raymond, a well-known open source software advocate, wrote about open source software development models in his essay, The Cathedral and the Bazaar. The point he wants to make is: the more contributors including users are, the better software becomes.

Let's say you own a restaurant and sell your signature menu. Everyone almost always has a different voice about the same menu. Some might say it tastes just right for them while others could find it too sweet, too spicy or too salty. Or, some might have an idea of perfect plating for your signature menu. There could also be someone who knows how to better design a menu to highlight your signature dish. What if they have a channel to give their feedback right away or even make changes themselves? Such collaborated efforts and ideas could make your restaurant a more attractive place. People might line up outside your beautiful restaurant to enjoy the upgraded signature menu.

Open source software development is fueled by user feedback. If you choose to go open source but ignore user feedback, users will gradually stop using the software. Then, the software will eventually lose its purpose as a product. On the other hand, trying to handle every single feedback on your own is problematic too. Especially if there is too much feedback. You will naturally get more feedback when more contributors participate. It will become more difficult for you to respond to increasing feedback all by yourself, and when you fail to do so, it will result in deteriorating quality and loss of users. In the end, the open source software will become obsolete.

Smooth communications between the project owner and users are essential to open source development based on user feedback. Quick reflection of feedback will lead to more participation, creating a virtuous cycle of users actively participating as developers. Such a virtuous cycle will sustain the open source community for the project.  

All this is from the perspective of project owners. Now, let's look at it from a contributor's perspective.

Why contribute to open source? - from contributor's perspective

First of all, you as a contributor can make requests to an open source project directly and immediately. When there is an active community for the open source project, you will get replies in no time from other users or the maintainer. Wouldn't it make your open source life easier if you can get an answer to your questions quickly? If there is something you want to change, you can do it yourself, instead of waiting for someone to do it for you. You can also receive feedback on the changes you made. Records of everyone's participation is shared publicly at the open source community. This record can act as a portfolio and serve as a strong and effective self promotion, even more so than the coding tests you have to take in applying for jobs.

Did any of you out there stand on the sidelines because you thought that open source projects were only for highly skilled programmers? Why don't you revisit those open source projects you have been following and contribute? I'd suggest to start with the issue list of a project, especially with the issues tagged with 'good-first-issue', 'first-timers-only' or 'help-wanted'?

Armeria Contributor Reward

The purpose of the Armeria Contributor Reward Event was to express our gratitude to the contributors and interact with them. Since the Armeria project was open to people around the globe, main communications channel was via texts or replies. We've always felt that "LGTM (Looks Good To Me)" or ":thumbsup:?" weren't enough to express our gratitude. This time, we have reached out to individual contributors by email and sent a small gift. 

We also created an event banner, using the GitHub profile pictures of all contributors. Isn't it an adorable pink banner just like the logo of Armeria?

Participation by contributors

GitHub provides a graph on contributions. The following is a summary of what the graph tells you. Up until now, more than 60 contributors made more than 1,350 commits, adding about 457,000 lines and deleting 257,500 lines. The numbers tell how active our contributors have been.

Let's take a closer look on more specific contributions from the contributors.

  • Your contribution led Armeria's annotated service to a whole new level.
  • Your Retrofit integration module was one of the greatest additions in Armeria's history.
  • HTTP redirection is now easier than ever with Armeria thanks to your contribution.
  • Your work on implementing the high quality circuit breaker in Armeria is considered as an all-time legend.
  • Your optimization of weighted round-robin load balancing algorithm was very clever idea that it was worth of a prize.
  • We appreciate your initial groundwork, especially on the client-side, which made today's Armeria.
  • Thank you for promoting Armeria to the developer communities and we appreciate your contribution to the project!
  • Your documentation clean-up made us look way better than ever.
  • Your help with fixing the bug made Armeria more stable than ever.
  • Although your part was small, your dedication saved many of our days.

On top of this, many contributors made contributions in various ways. We sent a thank-you note to each and every one of them.

Interview with @anuraaga

As the Insights tab on GitHub shows, it was @anuraaga who made the most contributions except for the project owners. We took this opportunity to interview @anuraaga to share his thoughts.

Q. Could you please introduce yourself briefly?

A. I'm Anuraag, many call me Rag. I am a software engineer, and I have worked on many large-scale server-side projects. I got to know Armeria when I was working at LINE in the LINE Shop team — it was a really great coincidence that when I joined the team and wanted a full-featured RPC framework to replace legacy Thrift libraries, @trustin(Trustin, the project owner) had just started working on the Armeria project to provide that. Since then, even after leaving LINE, I have been using Armeria in all my projects and continue to contribute what I can to the project.

Q. How do you use Armeria? Do you use it at work?

A. I use Armeria for all my server-side needs, for work and personal needs. My company, Infostellar, is building out global network infrastructure for satellite communications, and this means transferring lots of data, in addition to usual needs of an API. Our architecture follows a standard service-based one, with many servers running on Kubernetes, each exposing a gRPC API using Armeria. We also have a web frontend, which is also powered by Armeria's static file serving functionality and support for gRPC-Web.

Aside from work, Armeria is also my go-to for personal projects on the weekends. I'm glad I can use Armeria effectively in all sizes of projects as it just satisfies the use cases I need :)

Q. What do you think is the best part of Armeria?

A. I think Armeria's strongest point is the focus on developer productivity. Trustin has really created the project to satisfy the needs of all developers, and it means lots of flexibility, while also showcasing best practices and ensuring developers don't miss out on modern trends such as asynchronous programming. I have seen other frameworks or libraries where the maintainers take a very theoretical approach, which often results in the library being harder to use for developers because it focuses on what the maintainers want to see in a library, not what the developers need in a library. I think Armeria's focus on developer needs, including providing full support in a Slack channel, allows it to be useful to a large spectrum of developers, not just a small segment.

I also want to say that I really appreciate that Armeria is the most flexible server framework I've seen — being able to serve gRPC, static files, metrics, DocService, and any other content all on the same TCP port is a big achievement!

Q. Have you experienced any difficulties in participating in Armeria development?

A. Armeria development has been very smooth for me. The documentation and IDE(Integrated Development Environment) settings setup is easy to follow and PRs (Pull Requests) go smoothly thanks to the pleasant reviewers. For a little while, I did feel that releases were happening slowly, and I've even had to once deploy a snapshot with a bugfix that was merged but not released for some time. Lately, though, it seems releases are happening much more frequently and I haven't felt this at all. :)

One small point, which I guess is hard to change, is I do find myself having trouble getting whitespace formatting right even with the imported code settings — it's especially embarrassing seeing Trustin fix some whitespace issues in future PRs when he notices the ones I missed. ;)  Using an automatic formatter would remove one thing to worry about during development.

Q. Do you have any plans for or expectations from the project?

A. I personally plan to continue to use Armeria, contributing code when I find a new feature that may be useful, etc. Actually this is a good point; I'm not clear on what are the project's expectations for itself. There are many feature requests, often using a limited scope of technology — adding support for more service discovery mechanisms is a recent one that reminded me of this, another being whether to natively support spring security or not. I imagine it's not in Armeria's scope to support every single technology in the world, and wonder how to draw the line.

Q. What do you think about open source or open source contribution?

A. I love open source! I think it creates useful technology for all the developers out there, but also creates strong communities and I am really surprised but happy to have made many friends through open source. I hope to get to meet many more people through continued open source activities and encourage anyone that has some free time to just send a PR to their favorite repository.

Q. Any other comments?

A. I am excited that this event happened — it's great to see a focus on expanding open source from a leading company like LINE. It's easy for companies to just put out some source code, but not easy to actually support the ecosystem itself. Thanks a lot for helping to build the open source community!

Closing

Armeria is planning a range of programs to reach out to more users and contributors. We will share the news on upcoming events via LINE Engineering blog and official Slack like we always do.

Moreover, LINE is looking for programmers for Armeria and Central Dogma. Please check out the following job posting for more information.