Goals

  • Release stable version 1.0 of Apache StreamPipes
  • Ensure that post-1.0 versions are backwards compatible
  • Ensure that the feature set users expect from a 1.0 release is complete
  • Ensure that no critical bugs are present
  • Have the code base in a state which allows for future improvements


Non-Goals

  • Identify features we see as future improvements, but not critical for the 1.0 release


Features

Are there any features which are missing and critical for an 1.0 release?


IDDescription/Reason1.0 relevancy/comments
F.1 Improved start pageThe StreamPipes start page is too much centered arount technical terms. Users should find resources based on physical assets such as machines. Links to directly create dashboards/pipelines should be present on the main entry page.
F.2 Improved asset managementUsers should be able to better link StreamPipes resources to physical assets (e.g., machines). Users should be able to filter resources such as pipelines and dashboards by their linked asset.
F.3 Details for connected data sourcesCurrently, after creating an adapter, there is no way to have an overview of the connected data stream. There should be a details page for each adapter showing the schema, live preview of the data and transformation rules.
F.4 OPC-UAFeature-completeness of the OPC-UA connectors. Currently, we are missing authentication options.
F.5 MQTTFeature-completeness of the MQTT connectors. 
F.6 LoggingSupport various logging options besides console logger, e.g., write rolling log files, use Prometheus endpoints for logging as well
F.7 Data ExplorerSupport the most important configuration options in the data explorer → clarify with users
F.8 Database Retention TimeAutomatically delete/aggregate persisted data streams
F.9 PagingUI should use paging in all views to avoid performance problems
F.10 BackupFeature to perform a complete system backup & restore


Bugs

Are there any critical bugs we need to address before releasing 1.0?

IDDescription/Reason1.0 relevancy/comments
B.1 MonitoringCheck adapter and pipeline health monitoring and metrics. It seems these are not always present/correct
B.2 File uploadFile upload only works for admin users
B.3 User managementUser management not completely supported in all views




Usability

Are there any usability painpoints we need to address before releasing 1.0?


User Experience (Usability of the UI)


IDDescription/Reason1.0 relevancy/comments
U.U.1 Clean up resource overviewOverviews (dashboards, pipelines, adapters, measurements) get bloated
U.U.2 MeasurementsClarify terminology between data lake/measurements/adapters. Not clear to users → see asset management features




Developer Experience (Usability of SDK/Extensions)

IDDescription/Reason1.0 relevancy/comments
U.D.1 Fluent API for adapter and pipeline element configurationsThe current SDK to create configurations methods are hardly understandable for new developers. E.g., instead of freeTextStaticProperty, we should provide SDK methods  such as textInput
U.D.2 Improve migration processClarify how to better test migration of pipeline elements and adapters (dry run)


User Acceptance

Are there any issues which negatively impact user acceptance? E.g., frustrations users experience when trying the product for the first time or in the long run.

IDDescription/Reason1.0 relevancy/comments
UA.1 Unclear modelingCreate best practice catalog/concept how to model adapters/pipelines
UA.2 More lightweight default systemDo we need a more lightweight default system?


Code Quality and Maintenance

Where do we need to improve the code quality to make sure that future backwards compatibility is guaranteed?


IDDescription/Reason1.0 relevancy/comments
CQ.1 CouchDB serializationCurrently, we use an outdated CouchDB library which depends on Gson, while we use Jackson in the code everywhere else. We should find a way to eliminate the Gson dependency and rely on a single serializer only. This also requires migrations for existing CouchDB documents.
CQ.2 Model simplificationsThe internal model to represent data streams, adapters, data processors and sinks is too complicated. The model still suffers from limitations we had when we were representing the model as RDF back in the days. We should embrace composition over inheritance (e.g., having an object which represents labels with name/description/id). This will pave the way to use language-agnostic serialization e.g. by using protobufs, reducing the maintenance effort for our multi-language clients. 
CQ.3 DatabaseMigration from InfluxDB to IoTDB or other TS database
CQ.4 Architectural ReviewIs our architecture ready for 1.0? Do we need multi-protocol support for message brokers? What is the future architecture we aim at?
CQ.5 Influx v1 volumeClarify required migration in case of removal of the old Influx v1 volumes (in k8s and docker)
CQ.6 Harmonize namingHarmonize naming of StreamPipes concepts (e.g., data processor/sepa) in the codebase, semantic types/domain properties
CQ.7 Testing framework Data ExplorerWe should be able to automatically test data explorer features
CQ.8 Automatic testing of upgradesOur test framework should include upgrade tests from one version to the next



Next steps

Collect more feedback


Any other issues

Please add here all other thoughts on the 1.0 release


  • Clarify role of dashboard
  • Clarify role of asset dashboard
  • Clarify post-1.0 release train




  • No labels