Software Architecture of Scrum.ai
Sebagian besar Scrum.ai menggunakan bahasa pemrograman JavaScript. Scrum.ai menggunakan software-software yang modern mengikuti perkembangan JavaScript yang sangat cepat. Selain itu, bahasa JavaScript sendiri dipilih karena mengikuti software environment partner kami, yaitu Kata.ai.
Karena Scrum.ai merupakan chatbot, kebanyakan code kami berada pada bagian backend. Kami menggunakan Node.js sebagai backend kami. Khususnya menggunakan library Koa.js, semacam Express.js lite.
Kami menggunakan framework TypeScript agar code kami memiliki static type. Untuk database, kami menggunakan PostgreSQL. Akan tetapi kami tidak langsung menggunakan database melalui query, melainkan kami menggunakan framework TypeORM yang dapat menerapkan Active Record Pattern.
Berikut ini merupakan daftar teknologi yang kami gunakan:
Update:
Berikut ini merupakan desain arsitektur dari Scrum.ai.
Saat ini Scrum.ai menggunakan server gratis dari Heroku untuk menjalankan program yang dibutuhkan. Scrum.ai juga menggunakan database postgres gratis dari Heroku. Kemudian server akan berkomunikasi dengan database menggunakan interface yang tersedia di Heroku.
Server pada Heroku akan berkomunikasi dengan API slack. Server akan menerima event-event yang dikirim oleh Slack. Event-event ini lah yang akan mengatur jalannya (event-driven) aplikasi Scrum.ai.
Pada nantinya kami akan menggunakan beberapa microservices. Semuanya terpusat pada redis. Redis akan mengatur lalu lintas aplikasi kami. Chat channel services akan berfungsi sebagai front-end Scrum.ai. Scrum tools services akan berfungsi sebagai alat bantu scrum. KataPlatform API akan mengolah natural bahasa agar dapat diproses oleh server Scrum.ai. Rendering service akan menampilkan summary progress mengenai project yang dikerjakan.
Referensi:
https://medium.com/scrum-ai/architecture-behind-scrum-ai-453d30720840
https://medium.com/scrum-ai/re-architecture-behind-scrum-ai-a552a87142ae