Cheaper, too. And in very active development.
ASP.NET Core in my case
For me it’s Elixir and Phoenix combined with PostgreSQL.
I’ve been using this stack for the past 4 1/2 years as my day-to-day language and I’m very happy with it.
I’ve always wanted to dabble more with serverless applications, as I can certainly see the appeal. I’m convinced that the serverless paradigm can be very powerful for some types of applications, haven’t really gotten around to that though.
Would you have some recommendations for resources about the “Commanded” architecture? I’ve never heard of it before.
And get his book.
To quote Ben Smith himself
Conduit is an open-source, example Phoenix 1.3 web application implementing the CQRS/ES pattern in Elixir. It was built to demonstrate the implementation of Commanded in an Elixir application for the Building Conduit book.
I got some hard times in the beginning so, be sure to clone the repo of him and use it as your base. Otherwise, the changes will make you sweat
Oh nice, thanks! Will look into them!
I am using rails for years. For work, I use expressjs and gin.
Now I am searching for resources for oak (typescript).
NodeJS and Django, Redis and MariaDB.
I hope Ben will still finish the book
Same, it’s a WIP since long ago. I’d be very please to help him make it up to date.
Any recommendations for good resources on using Akka.NET?
Yup. But that would be awesome if you do.
No, just the official documentation on https://getakka.net/
For simple projects - rails
For more complicated willl use nodejs/golang.
Recently trying a bit of Django/Flask.
I’m actually trying to do most stuff serverless, so it’s a bit different, so Python / Go. But I mostly use Flask when I need a framework.
But I’ve been meaning to finally do stuff with Phoenix.
Very curious to get your feedback on this. What do you think of Django and/or Flask ?
I’ve always got a bad opinion, but I’m strongly biased.
I will talk about flask / Django separately.
Flask is relatively better than Sinatra since the community is more active than that.
Compared to Rails, Django is honestly less mature than that.
However, Python has quite a bit libraries specifically at different domains.
I actively run a python flask server for over 10 years now. It started as a little one-off project that… accidentally ended up getting used in ‘production’ on one of the open source sites I host due to its immediate usefulness. I’ve always kept intending to either replace it with an actually well built setup or just remove it altogether for something prebuilt open source or for it to eventually just die due to no longer needing to be used, but the prebuilt things lack features I need so I’d need to rebuild most of the functionality anyway, and I’ve not got around to rebuilding it because I keep expecting it to “die in the next year due to no longer needing to be used”, but that’s been repeating for over 10 years now.
In essence the flask app has a fairly minimal user authentication system, using pyobject or whatever it was called as the very minimal ‘database’ (only stores user data, kind of…), and files get uploaded and commands fired on it to do ‘stuff’. The ‘stuff’ it does includes things like generating a full static site generated from files and metadata uploaded around the system and paths in a lot of… unique ways I’ve not seen in any other SSG (hence why I haven’t been able to replace ‘that’ functionality yet either, it would practically require rewriting them as well).
Flask is easy, but I really really dislike it, it’s been the bane of so many issues for me over time, with the most annoying of which being that it can only handle a single connection at a time (yes I have it behind a uwsgi server but I still have to serialize their access to the filesystem so only one SSG update happens at a time, and it doesn’t have a good way to sync that outside of just ‘running another program’ or variety of other annoying things) and it’s a bit irritating to update.
But yeah, if you want to spool up something really really fast and really really simple, flask is great at that, but honestly I’d just use rust + rocket or so nowadays anyway (excepting rocket’s utterly garbage websocket support, only works via it’s own channel interface so you can’t just plug in any generic websocket handler very very irritatingly, though its channel interface is very nice if you can work within it, modeled on Elixir’s Phoenix Channels interface, but like Elixir’s Phoenix Channels it breaks horribly if you want to do actual real websocket connections to other libraries or so). At least rocket (and phoenix) have ways to kind of work around that by just hooking in to their underlying server libraries (hyper/tower for rocket and cowboy for phoenix) but it feels really hacky in both cases which does contribute to both libraries feeling a bit hacky as well when you are forced to do that. But I like rocket as it’s very similar to flask in feel, but significantly faster, more well made, and even easier to use in a lot of ways, in exchange for having to compile before running it, lol.
For backend stacks, rust nowadays, absolutely, unless you need extreme horizontal scaling across machines then phoenix or so can be easier to handle (though the ‘traditional’ ways of sharding work fine in rust anyway if a bit more stuff to set up than something like phoenix, though rust will scale better on a single system regardless). Rust has a lot of backend libraries, and they are working very well together as well with things like tower and such becoming popular as an integration point across them all.
Have you tried other Rust frameworks besides Rocket? Or is Rocket becoming the defacto framework?
And in another note, any opinions on Go frameworks? Gin?
I used Gin for some internal services in a layered system. I found that there will be quite a bit set up for web facing API.
And yes I am quite curious the maturity of Rust and its framework either.
Currently the most comfortable framework for me to do APIs are either expressJS/KoaJS and Pheonix.
ps. I got quite a bit of issues on Rails API mode with those gems, so I just give it up.