Project based on NATS & Resgate

Latest news from me:

I am currently working on a project together with Nercia to build an education platform, based on NATS and Resgate. Earning some money :slight_smile: .

This project uses the following technologies:

  • NATS
  • Resgate
  • Keycloak
  • Postgres (for Keycloak)
  • Traefik
  • MongoDB

Microservices are written in Go, with docker images built based on scratch.

Frontend is written in vanilla Javascript, using ResClient and modapp.

So far it has been a bliss to work with. Resgate is preforming very well. With Go’s short compile time, and the possibility to code/run/debug microservices directly in VSCode, the time between iterations (coding-compiling-testing) are minimal.

Front-end wise, the instant and simple access to new resources using ResClient, also makes for a speedy development. Lovely!

While this project will steal focus from direct Resgate development, it will also result in a lot of knowledge. Once done, I hope to open source any reusable service, such as:

  • file service - serving binary files on behalf of other RES service
  • oidc auth service - RES service for integrating with an oidc provider

Some requested Resgate features will also get higher priority, such as the possibility to set response headers (cookies) to simplify authentication and jwt token handling.

All in all, it will in the end lead to Resgate being further improved.

Best regards,
Samuel

1 Like

I like everything you said, except the part about keycloak.

On the surface keycloak appears to be a really great, turnkey tool. I’ve used it for many years and can tell you that it was one of the single greatest bottlenecks I ever had to deal with. I’m currently using vault for all of our authentication; it’s simple to work with (especially during development), significantly more secure and best of all it scales really well.

I haven’t tried Vault, but I will surely take a closer look at it! Thanks for the recommendation :slight_smile:

I can see Keycloak becoming a bottleneck when scaling up. Fortunately, this project will not require massive scaling, so I still think it will do. It was chosen because of the project requiring integration with BankID, a Swedish e-ID solution, and Keycloak has 3:rd party support for it.