Many of these ideas stem from the initial MiNiFi DISCUSS thread on 9 January 2016.  

Target release
Document status
DRAFT
Document owner
Designer
Developers

Goals

  • To establish scoping for an initial agent model 

Background and strategic fit


Terminology


Assumptions

  • Design and Deploy mechanisms.  How new flows/processing are introduced may vary

Requirements, Feature Requests, Design Considerations

#TitleUser StoryJIRA Issue(s)ImportanceNotes
1Support for/implementation in native formatsThe JVM itself has a large footprint that can be prohibitive in some environments. While the JVM provides a great way to afford reuse of components developed and tested with considerable resources and establish necessary interface and architecture considerations with a known quantity. Other implementations should be possible through well defined interfaces, specifications, and libraries as possible.


2Vetting/Verification of Provenance / Chain of Custody / Lineage information - Integrity & Non-repudiationDue to the potential difference in trust model, there are other considerations for how we can both trust and potentially verify information provided by endpoint agents.

3Docker Logging DriversProvide implementations that allow the collection and management of container information


4Support common protocols and systemsAs NiFi is flexible and adaptable to various formats, schemas, and protocols, similar provisions would be useful for users of the agent. Scoped to the types of data this model is a natural fit for brings certain best in class protocols to mind. Exemplary protocols provided in Notes.

  • MQTT
  • AMQP
  • STOMP
5Back-pressure over network boundariesMuch as there is backpressure within connections, it could be advantageous to apply this concept across network boundaries.

Reactive Socket:  http://reactivesocket.io

User interaction and design

Questions

Below is a list of questions to be addressed as a result of this requirements document:

QuestionOutcome

Not Doing