The following is more notional than specific dates in deliverables but provides a path from effectively a new codebase through to the broader goals and initiatives to provide a centralized command and control. The following should be considered a living document to be updated as the community makes decisions and plans. Please leave comments with thoughts and feedback!
Prototype Agent in Java - Version 0.0.z
Leverage and reuse existing NiFi libraries to create a compact footprint and use this as a means for evaluating and determining interfaces, protocols and higher level design. These iterations will not come with any guarantees over API and may be subject to change. The goals should be to establish a reference implementation where best practices and further refinement of the core interfaces can be provided. Finalized design and interfaces should be generated to serve as specification for future implementations. At minimum, the core facets needed are those of collecting and transmitting data with its associated provenance while meeting the needs of security in transport and the ability to update the agent via design and deploy mechanisms.
Agent in Java & Native - Version 0.1.z
After further evaluating design, 0.1.x should represent building upon the research and lessons learned of the 0.1.x. The Java agent will represent an evolution of those libraries and classes established from the prototype step, adhering to the principles and design established. Further, at this time, it should be possible to begin the development of a native agent.
Agent Feature Enhancements - Version 0.2+.z
Centralized Command and Control - Version 1.y.z
A broader effort will be the incorporation of maintaining, monitoring and controlling agents from a centralized point. One possible path is the incorporation of these functionalities in core NiFi where different classes of agents could be represented as a process group or similar semantic where "like" data is received and introduced into the system. Beyond this ingress point, data transmitted would function in the same capacity as other data in the core of Apache NiFi.