serviceradar-zen: add support for multi-tenancy #732

Closed
opened 2026-03-28 04:27:56 +00:00 by mfreeman451 · 1 comment
Owner

Imported from GitHub.

Original GitHub issue: #2270
Original author: @mfreeman451
Original URL: https://github.com/carverauto/serviceradar/issues/2270
Original created: 2026-01-12T07:24:18Z


We need to investigate the serviceradar-zen service and see how it supports NATS JWT accounts, I don't think it was ever updated and is probably connecting to NATS using mTLS. It doesn't seem like serviceradar-zen would work for multiple tenants and it is not clear if we want it to. We may want to consider spinning up a separate serviceradar-zen instance per-tenant, or try to figure out how serviceradar-zen could listen to multiple NATS streams, one per-tenant.

Not sure what the best approach is here yet, spinning up additional processes in a docker compose stack might be difficult as well.

Another option is to pull this into serviceradar-core-elx and use rustler/NIF to call out to the zen engine. I don't know if running that in elixir is going to be as performant as just a standalone rust process that uses tokio/async or what.

The nice thing about moving it into elixir is we can just keep all of these rules in ETS for zen.

Imported from GitHub. Original GitHub issue: #2270 Original author: @mfreeman451 Original URL: https://github.com/carverauto/serviceradar/issues/2270 Original created: 2026-01-12T07:24:18Z --- We need to investigate the serviceradar-zen service and see how it supports NATS JWT accounts, I don't think it was ever updated and is probably connecting to NATS using mTLS. It doesn't seem like serviceradar-zen would work for multiple tenants and it is not clear if we want it to. We may want to consider spinning up a separate serviceradar-zen instance per-tenant, or try to figure out how serviceradar-zen could listen to multiple NATS streams, one per-tenant. Not sure what the best approach is here yet, spinning up additional processes in a docker compose stack might be difficult as well. Another option is to pull this into serviceradar-core-elx and use rustler/NIF to call out to the zen engine. I don't know if running that in elixir is going to be as performant as just a standalone rust process that uses tokio/async or what. The nice thing about moving it into elixir is we can just keep all of these rules in ETS for zen.
Author
Owner

Imported GitHub comment.

Original author: @mfreeman451
Original URL: https://github.com/carverauto/serviceradar/issues/2270#issuecomment-3747944149
Original created: 2026-01-14T06:11:25Z


closing as completed, each tenant will get its own instance

Imported GitHub comment. Original author: @mfreeman451 Original URL: https://github.com/carverauto/serviceradar/issues/2270#issuecomment-3747944149 Original created: 2026-01-14T06:11:25Z --- closing as completed, each tenant will get its own instance
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
carverauto/serviceradar#732
No description provided.