Uploaded image for project: 'SAMOA'
  1. SAMOA
  2. SAMOA-77

Rebuild and unification of data serialization

    XMLWordPrintableJSON

Details

    • New Feature
    • Status: To Do
    • Major
    • Resolution: Unresolved
    • SAMOA-API, SAMOA-Instances
    • None

    Description

      Currently all Loader instances are created in the Instances class constructors, by providing proper parameters in constructor different implementation of Loader is instantiated (and Loader implementations handle deserialization of “sources”- arff file, avro files etc.). In our opinion this could be improved by creating a factory object designed to create proper Loader instances. Such LoaderFactory could accept number of parameters and would return most appropriate Loader implementation. This solution will benefit in the future when there will be need to add new loaders/sources. Also the code will be cleaner and the process of adding another loaders will be simplified, also thanks to ’strict’ use of factory design pattern.

      So to sum up, it would mean we would keep all the serialization-related code in the samoa-instances project, and we will use Loader interface (possible extended to support reading and writing of data), and LoaderFactory class. Arguments for factory method would be passed as task options, which means adoption of new serialization formats and data sources would be also simplified. This would mean that we will redesign Kafka components so they will follow this pattern, but on the other hand the pattern would be shared among all the possible sources of data. Moreover, Instances class would be modified by removing some of its constructors and replacing them by single constructor accepting Loader implementation as created by the LoaderFactory.

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              pwawrzyniak Piotr Wawrzyniak
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:

                Time Tracking

                  Estimated:
                  Original Estimate - 840h
                  840h
                  Remaining:
                  Remaining Estimate - 840h
                  840h
                  Logged:
                  Time Spent - Not Specified
                  Not Specified