zporter

zporter

40) ElixirConf US 2018 – Breaking Down the User Monolith – Zach Porter

ElixirConf US 2018 – Breaking Down the User Monolith – Zach Porter

Coming from Ruby on Rails, the convention is to have a User model handle multiple aspects of an account such as login, logout, password reset, and email confirmation. While there is a temptation to bring that convention with us when building an Elixir application, we can do better by leveraging bounded contexts, Ecto’s embedded schemas, and Ecto.Multi to break these separate pieces of functionality into isolated chunks that are easier to maintain and extend.

Audience: Beginner, Intermediate

All talks are available in the ElixirConf US 2018 Talks List or via the elixirconf2018 tag

First Post!

zporter

zporter

ElixirConf US 2018 – Breaking Down the User Monolith – Zach Porter

Coming from Ruby on Rails, the convention is to have a User model handle multiple aspects of an account such as login, logout, password reset, and email confirmation. While there is a temptation to bring that convention with us when building an Elixir application, we can do better by leveraging bounded contexts, Ecto’s embedded schemas, and Ecto.Multi to break these separate pieces of functionality into isolated chunks that are easier to maintain and extend.

Audience: Beginner, Intermediate

All talks are available in the ElixirConf US 2018 Talks List or via the elixirconf2018 tag

Most Liked

zporter

zporter

Hey! Thanks for your interest in my talk!

Quick answers to your questions:

So, for that reason I’ll ask, if somebody have a github repo of this talk.

Not yet, but I am planning on finishing one that I started to accompany this talk. I can post here when it’s ready.

The trouble that I have is with the embedded_schema. Because I was watching the video and it’s seems to be incomplete, he don’t explain how to declare the structure for the user schema, using something like embedded_one and also he don’t show how can we create the migrations for that embedded field.

The example I gave using embedded_schemas was around Registrations. I apologize if it wasn’t clear, but I’m not actually persisting that embedded schema to the database. I’m using it to provide structure to a form or a set of user inputs and to manage changes and validations for those inputs. I’m then relying on the existing User schema as well as the Credential schema to persist to the relevant tables in the database. I hope that helps to clear the example up some! The embeds_one and embeds_many functions are very useful for storing in a JSON column in the database, and I’ve certainly done that before, but not in this case.

If you have any further questions, please let me know.

Thanks!

Yamilquery

Yamilquery

Hi guys! First of all, thank you so much for this ElixirConf 2018, was really awesome!

I was watching the ElixirConf 2018, specifically a video “ElixirConf 2018 – Breaking Down the User Monolith – Zach Porter”, in which he explains how to breaking down the User monolith. But I had a couple of doubts with it, and it seems to they disable the comments section in Youtube.
So, for that reason I’ll ask, if somebody have a github repo of this talk.

I was trying to replicate the exposed approach, but I got some errors.

The trouble that I have is with the embedded_schema. Because I was watching the video and it’s seems to be incomplete, he don’t explain how to declare the structure for the user schema, using something like embedded_one and also he don’t show how can we create the migrations for that embedded field.

I found a tutorial to do that thing, but I’m not pretty sure if it’s the best practices.

https://robots.thoughtbot.com/embedding-elixir-structs-in-ecto-models

Thank you so much!

Last Post!

ErionS

ErionS

Hey!

Great presentation, just watched it.

Could I get the github repo with the code presented please as I too have been looking for the presentation code.

Thanks!

Where Next?

Popular in Talks Top

brightball
Since the comments are turned off on the YouTube videos, I’m going to post on talk per day on here for viewing and discussion…starting wi...
New
axelson
ElixirConf 2017 - Perhap: Applying Domain Driven Design and Reactive Architectures to Functional Programming - by @Version2beta ...
New
axelson
ElixirConf 2017 - Well Behaved Native Implemented Functions for Elixir - @potatosalad Native Implemented Fun...
New
axelson
ElixirConf 2017 - Closing Keynote - @chrismccord All talks are available in the Elixir Conf 2017 Talks List o...
New
kokolegorille
Lonestar Elixir 2018 videos are starting to pop up :slight_smile: https://www.youtube.com/channel/UCOy-_b9bqjokoWX9Hg5ZgUg Day 1 Chris ...
New
New
AstonJ
Announced in February 2019, Broadway is a new open source tool developed by Plataformatec that aims to streamline data processing pipelin...
New

Other popular topics Top

electic
Hi, I am new to Elixir. I am trying to use the DateTime component to insert a date into MySQL however the there seems to be no way to fo...
New
vertexbuffer
Hello, can anybody help here..? I have a list of players and I what to delete an element, but every for loop the list is reverting to ori...
New
jononomo
For some reason my phoenix channels are working for me in my local dev environment, but as soon as I deploy via Docker, I get a 403 error...
New
aadeshere1
I have a another noob question about loop. Since elixir is immutable, while loop is not directly possible. total = 10 while total != 0 ...
New
greenz1
I have a phoenix application from which a user can download multiple(5-6) files of size 1MB. I couldn’t find anything related to sending ...
New
TunkShif
This post is an instruction guide to help you setup your Neovim for Elixir development from scratch. It includes general information on h...
274 42576 114
New

We're in Beta

About us Mission Statement