Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Apache Dubbo

GSoC 2025 - Service Discovery

Background and Goal

Service Discovery

  1. Well organized logs
  2. Actuator endpoints
  3. Tools

Relevant Skills

  1. Familiar with Java
  2. Familiar with Microservice architecture

Potential Mentors

  1. Jun Liu, Apache Dubbo PMC Chair, junliu@apache.org
  2. dev@dubbo.apache.org

     


Difficulty: Major
Project size: ~350 hour (large)
Potential mentors:
Jun Liu, mail: liujun (at) apache.org
Project Devs, mail:

...

Apache CloudStack DRS improvements

As a Operator I would like to have the loads on my systems more evenly/centrally distributed. At the moment there is a simple DRS for clusterwide distribution of loads, this is however not applying zone wide distribution or based on automated queries/improvements.

In addition we should add historic data for the VM in planning possible migrations.
At the moment allocated metrics are used. An first improvement would be to use actual metrics.


ref: cloudstack issue: https://github.com/apache/cloudstack/issues/10397

Difficulty: Major
Project size: ~350 hour (large)
Potential mentors:
Daan, mail: dahn (at) apache.org
Project Devs, mail: dev (at) cloudstack.apache.org

Lucene.Net

Apache Lucene.NET Replicator and Dependency Injection Enhancements

Background and Goal

Apache Lucene.NET is a .NET port of the Apache Lucene search engine (originally written in Java). This powerful library enables indexing and searching of documents with custom queries, making it a core component in many production environments. With over 100 million NuGet downloads, Lucene.NET is utilized in diverse scenarios, from local search functionality in mobile apps to supporting large-scale cloud infrastructures.

Lucene.NET already provides a foundation for replicating a search index from a primary node to one or more replica nodes, enabling High Availability (HA) and scalability through load balancing. Currently, our Lucene.Net.Replicator.AspNetCore project offers minimal replication support for ASP.NET Core servers, but it remains unpublished on NuGet and lacks the robustness required for most use cases. Your focus for this project will be to enhance and finalize the ASP.NET Core library, ensuring a seamless user experience by adhering to best practices and making replication setup as straightforward as possible – ideally requiring just one line of code.

Additionally, users may need replication support for applications outside ASP.NET Core, such as cloud-based distributed architectures, Windows services, or command-line tools running on Linux. To address this, we propose creating modular intermediate libraries using Microsoft.Extensions.DependencyInjection.Abstractions, enabling flexible and reusable replication configurations. This approach should also ensure that essential components like IndexWriter and IndexReader are configured in a straightforward and user-friendly manner.

Your task will also include creating one or more sample projects that demonstrate how to effectively use the enhanced replication functionality. These projects should serve as practical, real-world examples for the community, showcasing best practices and ease of use. Additionally, you will be responsible for thoroughly testing the code changes to ensure they work as intended in real-world scenarios. This includes writing comprehensive unit tests to guarantee the reliability and quality of the solution.

We plan for this to be a hands-on mentorship, and we will set up any infrastructure for you. As a contributor, your responsibilities will include analyzing the problem, developing a detailed plan, refining it with input from the project team, and collaborating regularly to implement the solution through pull requests and code reviews.

Relevant Skills

  • Familiarity with C# and unit testing
  • Strong grasp of design patterns and practices, such as dependency injection and i.e. the fluent builder and abstract factory patterns
  • Basic understanding of HTTP(S) and networking
  • Not required, but good to have:
    • Familiarity with ASP.NET Core 5 or later
    • Understanding of distributed architectures
    • Familiarity with Lucene(.NET) search indexes


Difficulty: Medium

Project Size: ~175 hour (part-time)

Potential Mentors:

  • Paul Irwin, paulirwin@apache.org
  • Project Devs, dev@lucenenet.apache.org
Difficulty: Major
Project size: ~350 hour (large)
Potential mentors:
Paul Irwin, mail: paulirwin (at) apache.org
Project Devs, mail: dev (at) lucenenet.apache.org