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.

2019 - Q4

  • .NET service library query support 1
  • Go service package query support 2
  • .NET service library inter-service communication 3
  • RES protocol resource version tags 4
  • RES protocol token duration 5
  • RES protocol delete event 6
  • RES protocol resource reset event 7

2020 - Q1

  • Go service package inter-service communication 8
  • Java service library 9
  • Java client library 10
  • Resgate syslog support 11
  • Resgate monitoring feature 12

2020 - Q2

  • RES protocol document resource type 13
  • RES protocol stream resource type 14
  • RES protocol collection replace/move events 15
  • Inter-service conflict resolution and synchronization service 16

2020 - Q3

  • Go client package 17
  • OpenID integration service 18
  • Google 0Auth2 integration service 19
  • Javascript (Node.js) service module 20
  • Resgate file cache support 21

  1. Extend the existing query support in the .NET RES Service library to allow registration of event listeners on other handlers registered by the service.
  2. Extend the existing query support in the go-res service package to allow registration of event listeners on other handlers registered by the service.
  3. Extend .NET RES Service library to support calling methods, getting resources, and subscribing to events owned by other services connected to NATS server.
  4. 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.
  5. 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.
  6. Extend the RES Service Protocol with a resource delete event, which will trigger the gateway to unsubscribe the resource, and clear it from the cache.
  7. Extend the RES Service Protocol with a resource reset event, which will invalidate the gateway’s cache for that particular resource.
  8. Extend go-res service package to support calling methods, getting resources, and subscribing to events owned by other services connected to NATS server.
  9. Create a Java service library with similar functionality as found in the .NET RES Service library.
  10. Create a Java client library to enable connecting to a RES API, using WebSocket, from Java/Kotlin based applications.
  11. Extend Resgate with option to log output to syslog.
  12. Extend Resgate to enable monitoring services to connect and read state information such as number of connected clients, cached resources, throughput, etc.
  13. 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.
  14. 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.
  15. 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.
  16. Create a synchronization service and protocol used for synchronization and conflict resolution between multiple instances of replicated resource services.
  17. Create a Go client package to enable connecting to a RES API, using WebSocket, from Go based applications.
  18. Create a service for easy integration with OpenID based authentication and authorization.
  19. Create a service for easy integration with Google based authentication and authorization.
  20. Create a Javascript (Node.js) service module with similar functionality as found in the go-res package.
  21. Extend Resgate with option to write cached resources to file storage to limit the memory usage.