Roadmap#

For more detailed tasks, checkout the repo’s github issues page here: Github Issues.

Developer Experience#

  • Onboarding
    • Example job execution

    • Edge Case Examples

    • Django connector example

    • Create open source friendly demo videos to link in the readme

    • Update the examples to demonstrate the usage of the new client selection feature

  • Test Coverage
    • Create Unit Tests for pos agg service function

    • Other tests missing

    • Integration testing

  • Refactoring
    • Improve naming conventions to be more explicit / self-documenting

    • Improve DRY-ness
      • e.g. settings file(s)

    • Enable “1-click deploys”. Refactor configuration scripts to have 1 source of truth / 1 settings file

    • Github Pages clean up

    • Github Pages allow for individual package building

    • Add pypi packages for all installable parts of the repo so that compiling isn’t only option for installation

New Features#

  • Developer workflow expand flexibility
    • Make experiment configuration and management more flexible
      • Allow developer to pass extra parameters to aggregation methods

      • Allow developer to pass hyperparameters to clients

      • Allow developer to upload their own aggregation method

  • Aggregation Capabilities
    • Support other model architectures

    • More sophisticated aggregation techniques to select out of the box

    • Split learning

    • Vertical federated learning

  • Client Selection
    • Add client selection to fma-core workflows

    • Add algorithms to fma-core algorithms

    • Create example

    • Update API to provide client-selection features to the developer.

    • Expand client monitoring features to integrate with client selection
      • Database features may include: device, system, connectivity, participation history, and errors

  • Client-side support
    • Improve how close our example clients are to being “production ready”

    • Enhanced logging, monitoring utilities

    • Unit tests

  • Developer WebClient
    • Add a WebClient for developer interaction to fma-connect

  • Example Use cases
    • Add a TypeScript Client example

Architectural/Infrastructure Upgrades#

  • Metadata Storage
    • Support Aurora/DynamoDB

  • Trigger
    • Support use of SNS

  • Security and authentication method improvements

  • Create Django Q as an extra for fma-django
    • Fix the model to use a generic instead of a schedule for linking

    • Update setup.py for django-q to be an extra

    • Remove django-q from agg / api remote deployment examples