Yeah, there are defaults, but they don’t enforce anything to you.
And of course you are right, currently there is an overwhelming majority of relational databases in there, thats just because the whole architecture of ecto is much more suitable to them. Its hard to wrap something else into it.
But of course, you may swap ecto with whatever you want.
Defaults are just a suggestion, to make it easier to people who want to stick with them, but you can override pretty much everything in Phoenix (except for Phoenix and Plug).
Another solution were to not provide any defaults, which would make it hard for beginners to get started and so removes the fun out of programming, which again is against the spirit of elixir.