You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Provide and maintain packagings of Zebra to several sub components(based on functions) so that it can be maintained better. @jsanter27 please add more description and achievable goals for 22PI1 here. Thanks!
The text was updated successfully, but these errors were encountered:
To coincide with the conversion to TypeScript, it would be best practice to divide the different functionalities of ZEBRA into packages that have one single purpose. Please see the diagram below for reference:
Design
(image may be cut off in some browsers, I recommend downloading the image for better viewing)
Main Packages
zebra-parser
The core, or base, package of this new design would be the zebra-parser package. This parser contains all the methods of converting the RMF/SMF data from its source into ZEBRA's object format. It will be modular and extensible for future data sources other than RMF DDS if such arise.
zebra-server
The zebra-server package can be better thought of as the main application of ZEBRA. It is a REST API that makes use of zebra-parser and any plugins created by extending zebra-plugin (more on that later). A user makes a request to the API, the server determines which data source to pull from, parses its data using the zebra-parser package, and responds with the expected JSON data.
zebra-plugin
Plugins created by extending zebra-plugin will be able to define data needed from ZEBRA and to specify what to do with it. ZEBRA will know how to handle the process and do it automatically for a defined interval. For example, zebra-plugin-prometheus can be configured to scrape data for user-defined metrics to be used as a Prometheus data source. For zebra-plugin-mongo, the plugin can be configured to pull certain ZEBRA data from the server and store it into a MongoDB database for historical records. There are many possible applications for ZEBRA data, so the plugin framework will be designed to be as extensible as possible, so that anyone can contribute and create a plugin they deem useful.
Goals
Create the zebra-parser package. This is the core package, so it should be the first one to complete.
Create the zebra-server package/application, along with creating the framework for zebra-plugin.
Implement zebra-plugin for the use cases that ZEBRA already supports (MongoDB, Prometheus, Grafana)
Provide and maintain packagings of Zebra to several sub components(based on functions) so that it can be maintained better. @jsanter27 please add more description and achievable goals for 22PI1 here. Thanks!
The text was updated successfully, but these errors were encountered: