DEV Community πŸ‘©β€πŸ’»πŸ‘¨β€πŸ’»

DEV Community πŸ‘©β€πŸ’»πŸ‘¨β€πŸ’» is a community of 967,911 amazing developers

We're a place where coders share, stay up-to-date and grow their careers.

Create account Log in
Cover image for how do applications like Twilio studio work?
Yazan Masafah
Yazan Masafah

Posted on

how do applications like Twilio studio work?

Am trying to build an application where customer can customize the application logic via drag and drop. The drag and drop interface will be controlling the logic of the flow (let's say, customize the logic of a chatbot flow), how such applications are developed, knowing that the need to be auto-generated and deployed in real-time.

Top comments (2)

Collapse
 
brandinchiu profile image
Brandin Chiu

It's hard to say for sure, (I'm not sure if Twilio put out a developer blog on Studio), but it's very likely an "event-driven" system.

You can learn some basics on how this works with AWS here: aws.amazon.com/event-driven-archit...

Essentially, the application logic sits on top of a system of registering "listeners" to "events".

Typically events are created by the service. Things like "a user registers", or "Customer sends an sms to target number".

Your users can then register individual listeners to those events, and attach an action to them, like "send an email", or "send an sms with a form".

Actions are usually defined by both the service and third parties in order to extend functionality.

The front end is then responsible for allowing events to be linked to actions, and chaining them together arbitrarily to create "application logic".

Event driven architectures are typically microservice-based (often as a service mesh in my experience) where they communicate with each other over something like gRPC as opposed to REST in order to help keep latency and response times down, especially once the chain starts to get long.

Collapse
 
yazanmasafah profile image
Yazan Masafah Author

Thanks a lot for your reply

Need a better mental model for async/await?

Check out this classic DEV post on the subject.

β­οΈπŸŽ€ JavaScript Visualized: Promises & Async/Await

async await