My personal curated list of awesome readings.
Amazon Web Services
ECS
- A beginner's guide
- Amazon ECS: using the CLI with Docker Compose
- Docker-Compose + ECS
- Gentle Introduction to How AWS ECS Works - with Example Tutorial (and 25mins video).
- Running Docker on AWS from the ground up
Lambda
Architecture
- Patterns for Resilient Architecture
Data structures
Linked lists
- Linked Lists in JavaScript - ES6 code
Design patterns
Backends for Frontends
Circuit breaker
- Circuit Breaker - By Martin Fowler
- Design pattern para microservices (Portuguese)
- Netflix:
CQRS
- CQRS - By Martin Fowler
- O que é? Onde aplicar? (Portuguese)
Messaging pattern (and brokers)
- Messaging Patterns for Event-Driven Microservices
- RabbitMQ best practices for High Performance (High Throughput) - By CloudAMQP
- RabbitMQ Hits One Million Messages Per Second on Google Compute Engine
- Understanding When to use RabbitMQ or Apache Kafka
Polyglot pattern
- PolyglotPersistence - By Martin Fowler
Saga pattern
- A Saga on Sagas - Process Managers, Coordinating Workflows, and Sagas: Clarifying the terminology
- Confusion about Saga Pattern
- How to implement business transactions using Microservices:
- Saga pattern and microservices architecture
- Sagas
Twelve Factor
- Twelve Factor App - Boas práticas para microsserviços (Portuguese)
Docker
Domain Driven Design
- BoundedContext - By Martin Fowler
Elixir
- How Discord Scaled Elixir to 5,000,000 Concurrent Users
- Implementing AMQP in an Elixir Application - Monitoring the Consumers
- Why we choose Elixir as the main technology for our startup? -Flipay
ELK Stack
Functional programming
- Demystifying functional programming - in a real company
Go
GraphQL
- Our learnings from adopting GraphQL - Netflix
- Running a scalable & reliable GraphQL endpoint with Serverless
Heroku
Java
- Garbage collector post series by Red Hat
- Graal vs. C2: Battle of the JITs
- Large pages and Java
- Monitoring Java Applications with Flight Recorder
- Parallelism, SIMD, and Vectorization in Java: Unblock the parallel processing potential
Kafka
- Apache Kafka Tutorial - For beginners
- Aprendendo na prática (Portuguese)
- O que é esse tal de Apache Kafka? (Portuguese)
Kotlin
- A taste of Functional Programming in Kotlin
- Arrow Try is dead. Long live Kotlin result
- Compositional Patterns in Kotlin
- Concurrency vs. Parallelism Using Kotlin
- How to leverage functional programming in Kotlin to write better, cleaner code
- Flight Recorder: Examining Java and Kotlin Apps
- Graal vs C2 who runs Kotlin faster?
- Programming with
Result<T> - Understading Flow
Kubernetes
- How to setup a perfect Kubernetes Cluster using kOps on AWS
- Migração do EC2 para o Kubernetes (Portuguese)
- Reducing the Cost of Running a Personal k8s Cluster
- Understanding resource limits in Kubernetes
Medium
- Netflix
- Nubank
- OLX (Portuguese)
- Favorites:
- Transações distribuÃdas em microserviços
- QuintoAndar
Microservices
NestJS
- Advanced NestJS: Dynamic Providers
- Clock-in/out system - Carlos Caballero blog
- Part I - Diagram
- Part II - Basic backend (I) - AuthModule
- Part III - Basic backend (II) - UsersModule
- Part IV - Basic backend (III) - AppModule
- Part V - Seed Database and migration data
- Part VI - Basic frontend
- Part VII - Deploy Backend (NestJS): Docker/Docker-Compose
- Part VIII - Deploy frontend (Angular 6+) using environments
- Part IX - Testing: Backend Testing - Unit Testing - Services
- Part X - Testing: Backend Testing - Unit Testing - Controllers
- Part XI - Testing: Backend Testing - E2E Testing
- Part XII - Testing: Frontend Testing - Unit Testing - Services
- Part XIII - Testing: Frontend Testing - Unit Testing - Controllers
Nginx
- Setting up a Reverse-Proxy with Nginx and docker-compose
- Docker compose: Nginx reverse proxy with multiple containers
Node.js
- Moving Node.js from PaaS to Kubernetes tutorial
- Node.js multithreading: Worker threads and why they matter
JavaScript
Security
- We're under attack! - 23+ Node.js security best practices
PostgreSQL
- JSON tutorial
- Returning Hierarchical Data in a Single SQL Query
- What is SKIP LOCKED for in PostgreSQL?
RPC - Remote procedure call
gRPC
- Building a Scaleable Protocol Buffers/gRPC Artifact Pipeline
- Building scalable microservices with gRPC - Bugsnag Blog
- Google's gRPC - A Lean and Mean Communication Protocol for Microservices
- gRPC in Microservices
- How We Build gRPC Services At Namely
- Implementing Remote Procedure Calls With gRPC and Protocol Buffers
- REST vs RPC - The SOA showdown. By Joshua Hartman, Director Of Engineering at LinkedIn
- Why we have decided to move our APIs to gRPC - By Dale Hopkins, CTO of Vendasta
Ruby
Sinatra
Rails
RSpec
- Better Specs - RSpec guidelines with Ruby
Serverless
- 15 Key Takeaways from the Serverless Talk at AWS Startup Day
- 19 Serverless microservice patterns for AWS
- Applying the pub-sub and push-pull messaging patterns with AWS Lambda
- How To: Manage RDS Connections from AWS Lambda Serverless Functions
- How To: Reuse Database Connection in AWS Lambda
- How To: Use SNS and SQS to Distribute and Throttle Events
- Serverless Testing Strategies
- The best ways to test your serverless applications
- Your CORS and API Gateway survival guide - Serverless blog
Spring
- Building a Multi-Module Spring Boot Application with Gradle
- Conditional Beans with Spring Boot
- Integration Tests with Spring Boot and @SpringBootTest
- Microservices with Spring Boot and Spring Cloud. From config server to OAuth2 server (without inMemory things)
- Modularizing a Spring Boot Application
- Pollution-Free Dependency Management with Gradle
- Structuring and Testing Modules and Layers with Spring Boot
WebSocket
See also
- Architecture vs Model
- A career is a marathon. Not a sprint
- A HeurÃstica da Jóia do Tempo do Dr. Estranho (Portuguese)
- All Time Favorites posts on High Scalability
- Considering Strategies For Idempotency Without Distributed Locking With Ben Darfler
- Consistency, casual and eventual
- Enterprise Application Logging Best Practices (A Support Engineer's Perspective)
- How Discord stores billions of messages
- How Sharding Works
- Mocks Aren't Stubs
- Software Entropy Explained
- Transactions and consistency 101
- Uber Engineering Blog
- Whatever happened to Durability?
On this page
Contributors
Created October 24, 2018
Updated December 14, 2025