-
Notifications
You must be signed in to change notification settings - Fork 213
Contribute
rDSN is provided in the MIT open source license.
The beauty of open source world is that we can benefit from each other. We are more than glad to accept any contributions to the project, including but not limited to bug fixes and feature improvements. You can do contribution by submitting pull requests or sending us email at [email protected].
One first contribution is to adopt rDSN to develop your distributed systems (either for production, research, or teaching), so as to leveraging all these tools rDSN provides, or embracing the replication framework provided by rDSN. Please try and share us your feedbacks so we can continuously improving the code.
Besides, we also believe that there are the following aspects that you may easily contribute to benefit all other applications atop of rDSN. Welcome to submit pull requests and/or sending us emails for direct contribution and/or collaborations on these topics. For those stand-alone components, we can integrate your code into part of the rDSN source tree, or, we can also have dedicated wiki pages to list your URLs so people can easily find them.
Currently, rDSN already provides a set of default native runtime components, and they are far from being perfect. We are looking for more component providers with higher performance and/or on new platforms (e.g., on mobile platforms), such as task queues, exclusive locks, reader-writer locks, semaphore, network libraries (e.g., on RDMA or new platforms), performance counter, logging system. Detailed interface requirements can be found in the source code (see <dsn/tool_api.h>), and they can be seamlessly integrated into rDSN as long as the interface fits.
The tool API in rDSN exposes reliable monitoring and manipulation capability to all underlying plug-ins about how the tasks in the upper application work. We hope this capability can help other developers and researchers as well to develop more development and operation tools as rDSN plug-ins. After all, we started this project partially because we ourselves as tool developers on distributed systems have felt a lot of pain in figuring out reliable approaches to understand and/or manipulating the legacy distributed systems.
Besides development and operation tools, we also believe the taint analysis capability via state extension and join points in rDSN introduce certain opportunities in implementing and applying more interesting runtime control policies at the task and user request granularity, such as multi-tenant resource isolation and adaptive admission control.
One goal of rDSN is to really eliminate the system complexities imposed by distributed systems so that application developers can focus on business logic complexities purely. Code generation is clearly one approach towards this goal, and it is great if people can work out more code templates on more tasks.
Any other thought, let us know!
Content