https://ru.wikipedia.org/wiki/Трёхуровневая_архитектура Посмотри вот это в месте где соединяются слой логики (application layer) и слой хранилища данных (persistence layer) Application layer содержит интерфейсы для Persistence, а Persistence строится по этим интерфейсам.
в db сконвертируете в тот тип, который примет db. У меня вот часто в базе таймстампы попадаются в epoch, но в структурах всегда торчит DateTime, для чего определен ecto type, а база его считает integer, как и положено.