https://aws.amazon.com/pt/builders-library/avoiding-fallback-in-distributed-systems/
Evitar o fallback em sistemas distribuídos
https://aws.amazon.com/pt/builders-library/avoiding-fallback-in-distributed-systems/
Evitar o fallback em sistemas distribuídos
Developing a robust, scalable, and efficient system can be daunting. However, understanding the key concepts and components can make the…
Origem: System Design Blueprint: The Ultimate Guide | by Love Sharma | Apr, 2023 | Dev Genius
Architecture of a neobank – Starling Bank
Starling Bank is the third largest – after Revolut and Monzo – among those digital banks referred to as challenger banks or neobanks in the UK. Starling Bank is a 100% cloud-based, mobile-only digital bank with a modern architecture designed based on the best practices in security, reliability, and resilience. It provides fintech developers with innovative APIs for account opening, payments, loans, etc., as well as a developer platform, custom backend ledger, and functionality for integration with Apple Pay and Google Pay.
The architecture of Starling Bank is based on the following principles:
1. Microservice architecture
2. Do everything at least once at most once
3. Async + Idempotence + Retry
4. Each service constantly working towards correctness
5. Often achieve Idempotence by immutability
6. No distributed transactions
7. Don’t trust other services
Backend technology stack
1. Java services in Docker and CoreOS
2. AWS: EC2, VPC, CloudFormation
3. REST (JAX-RS)
4. PostgreSQL
5. Jetty, Guice, Guava, Hystrix
6. Homegrown libraries: SQL database access layer, configuration, command line, background processing
7. No Spring, no JEE app servers, no Kubernetes, no Terraform
8. Prometheus for monitoring
9. ELK for log aggregation
10.PagerDuty for incident alerting
Builds and deployments
1. Continuous deployment to non-prod, sign off into prod
2. Auto build, dockerize, test, scan, deploy < 1 hr
3. Code release to production up to 5 times a day
4. Single stateless service per instance
5. Rolling deployments by termination
An interesting question is: How do they achieve data consistency without transactions? The answer is that they use an approach in which each microservice constantly works towards data consistency. In this way, the system implements eventual consistency. It is acceptable in most cases, except for card transactions, for which it is important to know the correct, up-to-date balance when a customer is about to use a card. To guarantee data consistency, they use two patterns, which are at the foundation of this architecture:
1. Recoverable Command
2. Catch-up processor
public interface RecoverableCommand{
void process(UUID uid);
int markItemAsProcessed(UUID uid);
}
public abstract class CatchupProcessor implements Runnable{
protected abstract Stream<UUID> selectItems();
protected abstract RecoverableCommand recoverableCommand();
}
If a microservice fails to execute a command, the catch-up processor will try to re-execute it and fix the data. They both work with object ID parameters while the context data is stored in the DB. Catch-up processing gets triggered by the scheduler every 5 minutes. This approach makes microservices stateless and resilient. An EC2 instance with a stateless microservice can be safely restarted at any moment, which is critical for resilience and scalability.
A better way for designers and developers to truly work together.
Designing Loggi’s event-driven architectureA new chapter for Loggi’s services communication
Origem: Designing Loggi’s event-driven architecture | by ernestocid | Mar, 2023 | Loggi
A new chapter for Loggi’s services communication
Origem: Designing Loggi’s event-driven architecture | by ernestocid | Mar, 2023 | Loggi
Caching is awesome but it doesn’t come without a cost, just like many things in life. One of the issues is ????? ???? ??????. Please correct me if this is not the right term. It refers to the scenario where data to fetch doesn’t exist in the database and the data isn’t cached either. So every request hits the database eventually, defeating the purpose of using a cache. If a malicious user initiates lots of queries with such keys, the database can easily be overloaded.
Origem: Cache miss attack – by Alex Xu – ByteByteGo Newsletter
Em todas as minhas empresas, eu sempre tive sócios ao meu lado. E, depois de mais de 20 anos de experiência, aprendi que todo negócio deveria ter 3 tipos de sócios:
1) Hustler
Perfil: agressivo, comunicativo e tomador de risco
Função: liderar as organizações
Responsabilidades: contratação, vendas, relações públicas, e captação de investimento ou financiamento
2) Maker
Perfil: técnico, racional e crítico
Função: construir as soluções das organizações
Responsabilidades: desenvolvimento e manutenção de produtos (P&D)
3) Manager
Perfil: racional, analítico e organizado
Função: manter a garantir longevidade para as organizações
Responsabilidades: organizar processos, ferramentas e burocracias para facilitar o trabalho do Hustler
Stephen Wolfram explores the broader picture of what’s going on inside ChatGPT and why it produces meaningful text. Discusses models, training neural nets, embeddings, tokens, transformers, language syntax.
Origem: What Is ChatGPT Doing … and Why Does It Work?—Stephen Wolfram Writings
Learn about the Saga architecture pattern to implement distributed transactions in a microservice-based application.
Origem: Saga Pattern in Microservices | Baeldung on Computer Science
What is it?This is my multi-month study plan for becoming a software engineer for a large company.Required: * A little experience with coding (variables, loops, methods/functions, etc)* Patience* Time
A system design interview usually lasts for 45-60 minutes and involves solving an abstract design problem. The problem would be something like ‘Design WhatsApp’. You would not be provided with any other requirements at this stage. This template would help you figure out how to ace the system design interview.
Origem: System Design Interview Template | Ace the System Design Interview
Com base na experiência de criar e evoluir o Kekanto por sete anos, vamos apresentar estratégias e dicas práticas para evoluir o produto. Serão discutidas táticas de como medir o engajamento dos usuários, compreender funcionalidades com maior fonte de retenção e a importância da primeira sessão em um app. Também mostraremos estratégias de push notification.
Origem: Evolução e retenção de produtos no Kekanto: técnicas e práticas
Monitoring & Observability Overview Monitoring Types Why Monitor? 4 Golden Signals Anti-patterns Design Patterns Telemetry Data Components 1) Data …
Top 20 Alternatives to Draw.io are: Brainboard, Lucidscale, IcePanel, Terrastruct, Fugue, Cloudmaker, Cloudcraft, and Cloudokit.
Origem: Top 20 Alternatives to Draw.io / Diagrams.net for Cloud Architecture | Medium
His counter-intuitive advice? “You have to reward effort, not outcomes”
It’s basically heresy. “Outcomes, not output” is THE mantra amongst product leaders and books like Inspired. Why is Sundar, a former PM himself, praising efforts over outcomes?
1. Google’s Increased Conservatism
2. What You Can Control
3. The Pendulum Swung Too Far
1. Google’s Increased Conservatism
When Sundar joined Google in 2004, it was very different from when he became CEO in 2015. In 2004, people believed any problem could be solved. And the reward structures were built such that they felt they should try to.
By 2015, Google was not a young unprofitable startup pursuing aspirational bets. It was a conservative profit machine focused on growing its great businesses. This meant folks were not taking the same big, low probability bets Google needed.
The company needed to reward the effort involved with these low probability outcomes.
This made rewarding effort, not output, the solution. The Google advice need not apply in situations where people are risk-taking. But it does in conservative environments.
2. What You Can Control
You can’t control outcomes. You can control outputs. You can control your effort and attitude, learning and quality of features. Outcome focus rewards the lucky and punishes the unlucky.
3. The Pendulum Swung Too Far
Google is famous for its use of OKRs to set goals & evaluate product teams. This approach completely ruled out outputs to focus on outcomes. But it had the result of penalizing good product teams in bad markets. It needed to come to the middle.
In summary, Google is zigging where others are zagging. It’s focusing on outputs and effort, not just outcomes. Consider if you should too.
https://www.linkedin.com/feed/update/urn:li:share:6948388764972965888?utm_source=linkedin_share&utm_medium=member_desktop_share&utm_content=post
Curated list of awesome articles and resources to learn and practice software architecture, patterns and principles. this repository will be updated continuously, keep yourself up to date .I created this repository to share a set of links that I found valuable and inspiring and I share them with others for improving our knowledge to
Origem: Awesome Software Architecture
I’ve spent a lot of time at conferences talking about all the wonderful things that are now possible using machine learning on embedded devices, but as Stacey Higginbotham pointed out at this…
Data-Science-in-Context-V.99-Web-BetaAuthors’ Manuscript of Data Science in Contex
BigLake is the name given by Google to an underlying data access engine used to provide access to data stored in either BigQuery or in…
I just put all the technical LinkedIn posts in one big PDF. It covers 75 topics and has 158 pages! A little background: I’ve been consistently posting on LinkedIn for 7 months now. With so many people on LinkedIn reading my posts, I’m extremely grateful.
Selecting the correct MTT* metric to improve your incident response is important. If the wrong metric is chosen, the improvements may get lost in the noise of a multivariable equation. This article reviews the various MTT* metrics available and discusses the best scenarios for selecting each one.
Origem: How to Best Use MTT* Metrics to Optimize Your Incident Response
Everyone has heard about Microservices. But do you know how to design one?
SREs are a rare bunch in the software community. But there’s little denying that the approach of Site Reliability Engineering is the future of software operations.
Origem: How SREs are unique in their approach to work – Cruform
A while back I wrote an article called Understanding RPC, REST and GraphQL which outlined the “what” in how these various approaches differ…
Origem: Picking the right API Paradigm
re:Work – People analytics can help to assess the effectiveness of people practices, programs, and processes. Understand how knowledge of social and data sciences can help you make more informed, objective people decisions.
Origem: re:Work – People Analytics
Nowadays, Microservices is one of the most popular buzz-words in the field of software architecture. There are quite a lot of learning…
Nowadays, Microservices is one of the most popular buzz-words in the field of software architecture. There are quite a lot of learning…
A map that represents what tech career progression looks like and what it requires.
Origem: The Skills Map of Senior Tech Career Progression | Code Capsule
Microservices architecture is a methodology wherein fragment monolithic single application into small applications and services which executes lightweight applications. Business capabilities and independently deployable models are the primary goals for Microservices development. Microservices architecture built using different programming languages and deployed them and connect.
It’s a made-up computer word that my word processor decorates with a wiggly red you-can’t-spell line. At least it did until I clicked “Add to Dictionary” (it got too annoying as I was writing a book on computer observability).Observability: The ability to observe.Observe-ability. Observability.
Origem: What is Observability
In this article, I’d like to share my knowledge and experience in Garanti BBVA, about moving from monolithic to microservices…
Origem: Data Consistency in Microservices Architecture | by Dilfuruz K?z?lp?nar | Apr, 2021 | Medium
In this article, we’re learning about the Architecture and the system design of Taxi Application services like Uber. In the Uber…
Origem: Uber Architecture and System Design | by Kasun Dissanayake | Nerd For Tech | Mar, 2021 | Medium
G2 Stack | Level up sales and marketing with high-res tech stack data
Origem: G2 Stack | Level up sales and marketing with high-res tech stack data
When teaching data science it’s very useful to demonstrate the interaction between data and a machine learning model. To get a feeling for this interaction it helps to see the effect of a model when it is applied to different datasets.
Origem: calmcode – learn code calmly