meenachinmay

meenachinmay

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.

Showing Posts 1 to 7

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.

meenachinmay

meenachinmay OP

@krasenyp Hey. Thanks for the reply.
My motive to learn micro-service arch by building a chat-app. Then i found elixir and i liked it so much because of it’s real time capabilities.

My way can become clear if you could explain those point to me which you think are being overengineered here. May be i might get new insights and can learn even more.

I would love to hear back from you. Waiting.

Thanks.

kokolegorille

kokolegorille

Hello and welcome,

You might have a look at…

It is not about microservice, but chat application.

For CQRS/ES You might get some inspiration from…

GitHub - commanded/commanded: Use Commanded to build Elixir CQRS/ES applications · GitHub.

BTW It’s possible to use microservice architecture, because the BEAM use message passing between lightweight processes. At a macro level, it’s possible to distribute between nodes.

You can go very far with Elixir only. But switching mental model is complicate,

meenachinmay

meenachinmay OP

@kokolegorille
I watched this video already without even knowing elixir at all so i think that shows how obsessed i am with real time system :grinning_face_with_smiling_eyes:
But the reason of using micro-services using nestjs and elixir with kafka i just an experiment and a project to learn new things with some constant motivation for me.

may i can explain better with this line →
“Modifying your ford fiesta like an Ferrari will not change it’s speed but will change the look and sound and people will still look at it many times. and of course we all know that it will not change the speed but still we all do this”

because of motivation sometimes. With this project at least i will be able to make two services to communicate with each other and it will make my resume attractive for my next interview i guess. haha
Any ways thanks for your reply and time.

kokolegorille

kokolegorille

Yes it is nice to experiment…

I did translate some ideas from this book

to Elixir in this repo GitHub - kokolegorille/microservices_umbrella: practical microservices in Elixir · GitHub

The code is not maintained, and old :slight_smile:

You might consider adding grpc to the mix

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:

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.

— All posts loaded —

Where Next? Top

Trending in Questions Top

RSP87
I’m working on a project that simulates the bumbl example in the programming phoenix book. It acts almost like an email client. We have a...
New
nseaSeb
Hello, I know there is an approach for handling lists that allows for optimized traversal, but I can’t recall the specific method (somet...
New
kpanic
Hi everyone, I am toying with the idea of building a “match maker” for giving personal help to people that wants to start coding. I sta...
New
brecabral
Documentation While reading the Scoped Routes section, I noticed that the documentation currently refers to a problem without explainin...
New
velrest
So my question is quite simple and i have found no conclusive answer on forum, google or AI. Should we use :erlang.float for Integer to ...
New
asweet-confluent
I recently noticed that Elixir’s Logger defaults its primary log level to :debug when no :logger, :level application configuration is pre...
New
apz
I’m new to elixir and just tried to install the elixirLS extension for VScode(ium) and it is throwing some errors that I would like help ...
New

Other Trending Topics Top

GenericJam
Edit: 2026 May 15 - This post is archived. Mob is alive!! Main docs: mob v0.7.11 — Documentation A bit of explanation for the slightly c...
New
JesseHerrick
Hey, I’m Jesse and I’m the main contributor behind Dexter, a full-featured, lightning-fast Elixir LSP optimized for large codebases. It s...
New
mudasobwa
I am happy to introduce the very α version of the new programming language compiled to BEAM. Welcome Cure. It has literally three kille...
New
marciok
Hi there! We created Gust: A task orchestrator inspired by Airflow. For those who have never heard about Aiflow, it’s a Python-based wor...
New
mhanberg
Hi everyone! The first release candidate for the Expert language server project is now available! We’ve published a press release detai...
New
jimsynz
Beam Bots (or just BB for short) is a framework for building fault-tolerant robotics applications in Elixir using familiar OTP patterns. ...
New

We're in Beta

About us Mission Statement

Options

Thread Display Mode




Thread Preview

Skip Thread Previews