Roadmap

The roadmap represents coming features lined up for the future of Resgate and its ecosystem. Its purpose is to give insight into the major features that will be implemented in the near future.

This is a living document where priorities may be re-evaluated based on the valuable input from the Resgate community. Please contact us through the forum with any questions, comments, or requests.

2020 - Q1

  • Go service package inter-service communication 1
  • .NET service library inter-service communication 2
  • Resgate syslog support 3
  • RES protocol resource reset event 4
  • RES protocol static resource type 5

2020 - Q2

  • RES protocol document resource type 6
  • RES protocol stream resource type 7
  • RES protocol collection replace/move events 8
  • Resgate monitoring feature 9

2020 - Q3

  • Go client package 10
  • Javascript (Node.js) service module 11
  • Resgate file cache support 12
  • Inter-service conflict resolution and synchronization service 13

2020 - Q4

  • RES protocol resource version tags 14
  • RES protocol token duration 15
  • Java client library 16
  • Java service library 17

  1. Extend go-res service package to support calling methods, getting resources, and subscribing to events owned by other services connected to NATS server.
  2. Extend .NET RES Service library to support calling methods, getting resources, and subscribing to events owned by other services connected to NATS server.
  3. Extend Resgate with option to log output to syslog.
  4. Extend the RES Service Protocol with a resource reset event, which will invalidate the gateway’s cache for that particular resource.
  5. Extend the RES Protocol with a static resource type. The new type would be used for arbitrary data structures which will not be updated once fetched by the client.
  6. Extend the RES Protocol with a document resource type. The new type would be used for larger texts where updates are sent as diff patches instead of replacements for the entire text.
  7. Extend the RES Protocol with a stream resource type. The new type would be used to reliably stream values to the client. Each value would be paired with a unique identifier, which the gateway or the client may use to replay the stream from, in case of a reset or a temporary lost connection.
  8. Extend the RES Protocol with replace and move collection events. The new events would allow for client UI to make better transitions, in comparison to the equivalent remove + add combination currently required.
  9. Extend Resgate to enable monitoring services to connect and read state information such as number of connected clients, cached resources, throughput, etc.
  10. Create a Go client package to enable connecting to a RES API, using WebSocket, from Go based applications.
  11. Create a Javascript (Node.js) service module with similar functionality as found in the go-res package.
  12. Extend Resgate with option to write cached resources to file storage to limit the memory usage.
  13. Create a synchronization service and protocol used for synchronization and conflict resolution between multiple instances of replicated resource services.
  14. Extend the RES Service Protocol to include the concept of resource version tags, an optional version identifier which may be included by the service in get responses or mutating events. The gateway will include this tag in subsequent get requests caused by resets, allowing the service to choose between sending the data again, or confirming that the version is the most recent.
  15. Extend the RES Service Protocol to allow an optional duration property to be included in the connection token event. Once the duration has expired, the gateway will clear the connection token and send reaccess requests for any current subscription held by the client.
  16. Create a Java client library to enable connecting to a RES API, using WebSocket, from Java/Kotlin based applications.
  17. Create a Java service library with similar functionality as found in the .NET RES Service library.