Skip to content

Commit

Permalink
feat: Create Record and Replay UCR
Browse files Browse the repository at this point in the history
related to edgexfoundry#471

Signed-off-by: Leonard Goodell <[email protected]>
  • Loading branch information
Leonard Goodell committed Aug 11, 2022
1 parent 4a176c6 commit 8184f12
Show file tree
Hide file tree
Showing 2 changed files with 51 additions and 2 deletions.
5 changes: 3 additions & 2 deletions docs_src/design/TOC.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
# Use Cases and Design Records

## Use Case Records (UCRs)
| Name/Link | Short Description |
|---------------------------------------------------------------------------|---------------------------------------------------------------|
| Name/Link | Short Description |
| ------------------------------------------------------------ | ------------------------------------------------------- |
| [0001 System Events for Devices](./ucr/0001-System-Events-for-Devices.md) | Use Case for System Events for Device add/update/delete |
| [0005 Record and Replay](./ucr/0005-Record-and-Replay.md) | Use Case for Recording and Replaying event/readings |

## Architectural Design Records (ADRs)

Expand Down
48 changes: 48 additions & 0 deletions docs_src/design/ucr/0005-Record-and-Replay.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
## Record and Replay
### Submitters
- Lenny Goodell (Intel)
- Jim White (IOTech)

## Change Log
- [pending](URL of PR) (2022-08-11)

### Market Segments
- Any/All

### Motivation
Currently one must have physical devices and appropriate environment to produce real device data (Event/Readings) into an EdgeX solution for other EdgeX services (Core Data, App Services, eKuiper Rules Engine) to consume. This is often not the case when someone is developing/testing one of these consuming EdgeX services. A good example of this is the **[RFID LLRP Inventory App Service](https://github.com/edgexfoundry/app-rfid-llrp-inventory)** . In order to test this service it is dependent on the [RFID LLRP Device Service](https://github.com/edgexfoundry/device-rfid-llrp-go), physical LLRP RFID readers, RFID Tags and environment where these are deployed. Having a way to record EdgeX the Event/Readings from an actual deployment that then could be replayed in development environment for testing would be very valuable.

Other potential uses are:

- “Replayable data” could be used to validate a new or updated EdgeX service behaves like the existing one (EdgeX certification). Or the data could be offered by component providers to give users an example of the type of data generated from one of their device services.
- EdgeX Ready applicants could use a record feature to capture data from their device service and the committee could explore that in relation to their profile to make sure they seemed to know what they were doing.
- Record and replay can be used to reproduce a reported bug.
- Record and replay could serve as a means to backup data in the event of data loss.

### Target Users
- Device Manufacturer
- Device Owner
- Device User
- Device Maintainer
- Software Developer
- Software Deployer
- Software Integrator

### Description
Target users have the need to be able to replay recoded EdgeX Event/Reading for functional, performance or reproducible testing. This UCR describes a new capability that allows user to first record Event/Readings from real devices in real-time and than be able to replay the Event/Readings as if it was in real-time.

### Existing solutions
There are simulators for some devices (i.e. Modbus), but there isn't an general solution to reproduce real device data into EdgeX without the physical devices being present.

### Requirements
- Record device Event/Reading data (at rates, volumes and details like timestamps)
- Replay captured data at captured, slower or faster speeds
- Export captured data for use at a later time or to send to other users
- Import recoded data that was previously exported
- Replay recorded data from multiple sources at the same time (this mimics more (device) services feeding EdgeX )

### Other Related Issues
- None

### References
- None

0 comments on commit 8184f12

Please sign in to comment.