meenachinmay

meenachinmay

Planning a micro-service arch project with NestJS and elixir!

Hey everyone. This is going be the first post ever here by me. Coming to the point that i am planning to build a very simple but powerful architecture based application which is going to be a real time chat application.

I am going to use Micro-service arch for this. For creation / update / deletion of users / rooms i am planning to use NestJS service and for handling real time messaging i am going to use elixir backend as a service.

I am planning to use Kafka as a message broker which will help me to perform inter service communication between nestjs service and elixir service.
when i will add authentication to this app which will be a tricky part of course because there are two separate choices one is to add centralized auth system after an API gateway or add a separate auth service in both the services. So that i will be thinking later.

for now i just want to welcome suggestions / hints / notes / help for this project. I am going to broadcast this whole project on my youtube channel and My biggest supporter in this project will be a AI bot called chatgpt. Because he helps me a lot.

One thing i want to tell everyone that i decided to build this project being a fresher to elixir. i have experience with nestjs as i use it at my work every day. But for elixir it is going to be my first time and today itself i wrote “Hello world” in this language.

I love real time system so i chose elixir to learn now onwards.

I would be more than happy if you can help me in this journey.
Thank you everyone in advance.

Most Liked

tfwright

tfwright

Since your interest is mainly to learn I recommend just jumping into writing code without worrying too much if you are making all the right decisions for designing the elixir piece. You will learn a lot from making wrong decisions and if you get stuck on something specific along the way you should find it easy to get answers here. In general the more specific the question the quicker and better the answer :wink:

krasenyp

krasenyp

Don’t know, sounds like overengineering to me. Just go with Elixir, you won’t regret it and it’s a superior technology, especially for the use case. But most probably it doesn’t matter because you probably won’t get to a scale where it would. No offence.

If you go with your proposed architecture, just deploy the two services to the same server and use UNIX sockets for communication.

D4no0

D4no0

Totally agree, the best practice to truly understand something is to make it the wrong way, then slowly improve while understanding the tradeoffs.

Where Next?

Popular in Questions Top

New
marius95
Hello everyone, I try to use an Javascript Event Handler in my root.html.leex file. Therefore I created a function in the app.js file: ...
New
Emily
I have VueJS GUIs with the project generated using Webpack. I have Elixir modules that will need to be used by the VueJS GUIs. I forese...
New
JulienCorb
I am trying to implement my new.html.eex file to create new posts on my website. new.html.eex: <h1>Create Post</h1> <%= ...
New
stefanchrobot
What’s the safe way to decode a JSON string into a struct? I want to avoid calling String.to_atom. Jason.decode can give me a map with st...
New
jason.o
In the code below, if the create action is not set to accept “extra_key” as an input, it errors out with a message shown above. Is there ...
New
romenigld
I am trying to run a deploy with docker and I successfully runned with this command: docker build -t romenigld/blog-prod . but when I t...
New
yawaramin
In the Dialyzer docs ( dialyzer — OTP 29.0.2 (dialyzer 6.0.1) ), there is a way to turn off a specific warning for a function: -dialyzer...
New
vegabook
I’m brand new to Phoenix and I have stripped one of the demo applications to the bone. I just want to get an svg up on the screen. Here i...
New
svb
Hi! Currently I want to submit a form by pressing the Enter key. However, since my input field is of type “textarea” this is just adds a...
New

Other popular topics Top

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
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 42158 114
New
lastday4you
I wanted to check elixir version in phoenix because i found that my elixir is 1.5 but when i use Enum.chunk_by it said the function is un...
New
minhajuddin
I have seen a lot of code which picks the first element from a list using Enum.at(0) instead of List.first. Is there a reason why people ...
New
Fl4m3Ph03n1x
About me? ( if you have nothing better to do than reading about some random guy in the internet :stuck_out_tongue: ) Hello all, this is ...
New
Lily
In templates/appointment/index.html.eex: <%= for appointment <- @appointments do %> <tr> <td><%= appoi...
New
aesmail
Hello guys, I have finally made it. I created an admin interface for a framework. It’s been on my todo list for years and with the curre...
New
shijith.k
I am trying to start a new phoenix project with elixir 1.9, but mix phx.new does not work. It says that ** (Mix) The task "phx.new" could...
New
Qqwy
Update: How to use the Blogs & Podcasts section You can post links to your blog posts or podcasts either in one of the Official Blog...
3271 127536 1222
New
AstonJ
Seen any cool LiveView demos, sample apps or examples? Please post them here! :003:
New

We're in Beta

About us Mission Statement