Choosing the right tech stack is one of the most important decisions when building a software product.

The ability to scale quickly depends on many factors but having the proper tech stack may be the most important one.

(Thread) 👇
1/ Tech stacks not only impacts the scalability in terms of performance but also provides flexibility and agility to evolve the product, eases the development of ecosystems, and attracts and retains talent.
2/ I am sharing in this thread, some of the components of our tech stack at @intraway that are working great for us.
3/ Cloud-native on AWS

We rely on #AWS to deploy our solutions, and we use the well-architected framework as guidance to design and run scalable cloud applications.

Don’t confuse cloud-native with cloud-ready. Only cloud-native takes total advantage of cloud's scalability.
4/ Kubernetes and Docker

We use #Kubernetes and #Docker to run our containerized microservices applications.

This approach not only ensures scalability but also provides an infrastructure abstraction layer to run your applications virtually anywhere.
5/ TIG Stack ( #Telegraf, #InfluxDB, #Grafana)

A very powerful solution for metrics collection, analysis, and monitoring

Telegraf - The agent that collects the data
InfluxDB - The database that stores the data
Grafana - The UI that makes the data looks pretty
6/ ELK Stack ( #Elasticsearch, #Logstash, #Kibana)

Provides centralized logging and makes log searching, analyzing and visualizing easy.
7/ Frontend: Angular

#Angular is one of the most popular JavaScript frameworks for developing front-end (client-side) mobile and desktop web apps.

It is supported by Google with a large community and a lot of well-documented resources.

Don’t confuse Angular with AngularJS.
8/ Backend: Java / Spring Boot / Microservices

Java is the main language we use to develop back-end applications.

#SpringBoot is a Java-based framework used to create microservices that you can “just run”.

We also use C++ and GO for some specific components.
9/ Database: MongoDB and MySQL

We use #MongoDB for most applications. MongoDB is a document-oriented NoSQL database that performs great for unstructured data. MongoDB Atlas is the cloud, managed version.

For use cases that we need structured and relational data, we use #MySQL.
10/ Messaging System: Apache Kafka

#Kafka is a stream-process platform with high-throughput and low-latency for handling real-time data feeds.

We use Kafka as a messaging system to share information between applications, creating a scalable decoupled architecture.
11/ Industry-standard APIs

Adopting standards simplifies interoperability with your ecosystem and makes it easier for customers and partners to understand and integrate your applications

For the #Telecom industry, we use Open APIs from #TMForum and LSO from #MEF.
12/ Infrastructure as Code (IaC) with Terraform

IaC is the answer to managing large-scale, distributed systems, cloud-native applications, and service-based architectures.

Learn more from @armon from @HashiCorp at:
13/ Continuous Delivery with #Git / #Jenkins / #Helm

A good CI/CD pipeline speeds up the process to get changes of all types -new features, configuration changes, and bug fixes- into production, safely and quickly.
14/ Slack for Communication and Automation

We embrace #ChatOps as practice.

We leverage #Slack and #Botpress integration for automating repetitive Q&A, support, and operation tasks.

We also use different slack channels for receiving alarms from our monitoring systems.
15/ I believe that building a great product is the art of productizing industry knowledge and best practices by creatively combining a scalable tech stack with an amazing customer experience journey.
You can follow @lucas_lodeiro.
Tip: mention @twtextapp on a Twitter thread with the keyword “unroll” to get a link to it.

Latest Threads Unrolled: