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.