Abstract

Apache Heimdallr is a distributed websocket application server framework for media signaling, chat app and so on, written in Scala language and built on Akka. It provides fault-tolerant and reliable scaling-out options. Heimdallr is currently powered by real-world production of Spoon Radio and supports heavy simultaneous connections. This project is licensed under the Apache License v2.0.

Proposal

The purpose of the Heimdallr project is to help users to create fault-tolerant and highly scalable distributed websocket application servers.

Background

The initial code was initially developed for real-time chatting feature at Mykoon, internet radio service company in 2018. Heimdallr has been under continuous development on its Github repository since being open sourced.

Rationale

In these days, websocket feature is essential for real-time functionality in modern apps. Heimdallr aims to be a fault-tolerant and highly scalable distributed websocket application server framework. It is complementary to the existing Apache projects, such as HTTPD or Tomcat. The main difference will be a fault-tolerance, scalability based on sharding, shadow re-allocation, and data synchronization functionalities from traditional web server projects.

Initial Goals

Some current goals include:

  • Make it as a general-purpose framework
  • Supports Socket.io compatibility
  • Move the existing codebase to Apache
  • Integrate with the Apache development process
  • Ensure all dependencies are compliant with Apache License version 2.0
  • Incremental development and releases per Apache guidelines

Current Status

Meritocracy

Community

Core Developers

Alignment

Known Risks

Orphaned products

Inexperience with Open Source

Homogenous Developers

The initial committers are employed by Mykoon (well-funded startup). We'd like to recruit more additional committers based on their contributions to the project.

Reliance on Salaried Developers

It is expected that Heimdallr development will occur on both salaried time and on volunteer time, after work hours. Since this project is already being stabilized, committers won't spend much time on salaried time. Most development of new features will be done on volunteer time. They are all passionate about the project, and we are confident that the project will continue even if no salaried developers contribute to the project.

Relationships with Other Apache Products

We are considering collaboration with other Apache projects such as HTTPD, and Kafka in the future. At this moment, we don't have any relations.

Excessive Fascination with the Apache Brand

This proposal is not for the purpose of generating publicity.

Required Resources

Mailing lists

  • private@heimdallr.incubator.apache.org
  • dev@heimdallr.incubator.apache.org
  • commits@heimdallr.incubator.apache.org

The project may also create a user mailing list if needed.

Source Control and Issue Tracking

JIRA: HEIMDALLR

Current Resources

https://github.com/edwardyoon/Heimdallr

External Dependencies

  • Akka (Apache 2.0)
  • Redis Scala Client (Apache 2.0)

Source and Intellectual Property Submission Plan

MyKoon will initially donate their content and code as Heimdallr is already open sourced under the Apache 2.0 license on GitHub.

Initial Committers

  • Edward J. Yoon (edwardyoon at apache dot org)
  • Yeontaek Kim (ytkcloud at gmail dot com)
  • Caley Baek (caleybaek at gmail dot com)

Champion

  • Edward J. Yoon (edwardyoon at apache dot org)

Nominated Mentors

  • Edward J. Yoon (edwardyoon at apache dot org)

Sponsoring Entity

the Apache Incubator PMC.

  • No labels