Initial development
With Rust, Actix, Yew and IndraDB
Every year SUSE gives its employees one week to work on whatever they want. This is referred to as Hack Week. Last year I used it to work on rselisp which is an Emacs Lisp interpreter written in Rust. I was quite happy with how that went, but stopped working on the project because I feel like there are more urgent things to work on than cloning Emacs.
In particular I spend a lot of time just matching test failures with existing Bugzilla entries. OpenQA has some facilities to automatically tag test failures with bug reports, but it is rather limited. Extending it would be possible, but I'd rather do it externally and using different technologies.
I considered using Elixir instead of Rust, but I think that Rust's performance and type system are better. Also, thanks to Actix, I can use the actor model with Rust. It is hardly as ergonomic as Elixir/erlang, but appears to work pretty well. Although the compiler throws out some pretty nasty type system errors due to the complexity of Actix's type gymnastics.
I have split the program into a number of actors, which, at least in theory, can independently fail and be restarted. They also run in different threads, so the application is naturally multi-threaded and should scale fairly well if the repository (repo) actor can be made to have multiple instances.
Of course I am also using Actix-web which is known to be very fast. On the client side I am using Yew which is also written in Rust and is compiled to WASM. This means the entire project is written in Rust with the exception of the Bulma CSS library. Yew also supports the actor model although I have not used that element of it. I really like having everything written in the same language and also not having to deal with Javascript runtime errors which can be caught at compile time in Rust.
The client is a single page application which communicates with the server over a single web socket connection. This is definitely not the easiest way to write a web application, but it is very lean and flexible. There is not much for me to say about Bulma other than it generally just works and is easy to use. I am even using it for this document, because it requires so little effort.