Published in

Re: Architecture behind

A more detailed, updated overview of the architecture

Checkout the previous story:

Projected software architecture for our project

As you can see, we follow microservices architecture to emphasise on scalability and prevent system wide failure.

Let’s walk through the architecture bit by bit.

Main Service

This is the main service that will contain most of the logic on an abstraction level. We host it in the We also plugs our database to this instance, with some redundancies/replicas as needed as we scale. The Main Service will communicate mainly with the Queue Service, although we also tightly use KataPlatform API to enable Natural Language Understanding to our bot.

Queue Service

As we grow to a Software-as-a-Service product, we expect to receive many request at a time, and we don’t want to fail at this. So we will use a queue using Redis to enable us to publish/subscribe intra-service messages to this service in an asynchronous way.

Chat Channel Services

Following the adapter design pattern, we will abstract away many chat services API to consume and post our interactive messages. Each of this service will live on its own instances independent of each other. Then all of the messages event will be sent to the queue service and consumed by the main service to process, on which the reply will be sent back to the queue and consumed by these chat channel services.

Scrum Tools Services

As with the chat channel, we follow adapter design pattern and abstracts the scrum tools like JIRA and Pivotal Tracker. These services will mostly consume commands like task mutations from the queue service and execute the actions, although sometimes we need to get data that we don’t have in our database from these services.

And that’s it! As I’m still learning on this area, please do criticise the design in the comment!




A Scrum Bot project on top of

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Rakha Kanz Kautsar

Rakha Kanz Kautsar

React Native developer excited about performance and system designs.

More from Medium

Using Documentation-Driven Design to Guide API Decisions

open books showing text

What Is Continuous Integration

man working in front of 3 screens.

Redefining Melio’s Entity Model

Designing Resilient Microservices — Part 1