2019-11

Understanding the Stellar Consensus Protocol

The Stellar Consensus Protocol is a “federated Byzantine agreement system” that allows decentralized, leaderless computing networks efficiently to reach a consensus outcome on some decision.


Give me back my monolith - Craig Kerstiens

Monolithic apps show you a clear stacktrace for errors. On the contrary, microservices makes debugging and understanding more complicated.

The reality we’ve invested decades into development practices and tooling around monoliths that are still maturing. Most of our conversation around SCALING just focuses on scaling the database.


Service Design Patterns - Web Service Implementation Styles - Command Invoker

Web services often contain logic that directs how Domain Models and database tables are used to process requests. This logic is frequently duplicated across web services.

Create command objects that fully encapsulate common request processing logic. Instantiate and invoke these commands from within the web service, or forward them to an asynchronous background process.

With the Command Invoker pattern, all domain logic is extracted from the web service and moved to Command objects.


potaroo.net

QUIC is one of many transport layer network protocols that attempt to refine the basic operation of IP’s Transmission Control Protocol (TCP).

These days most web pages are not simple monolithic objects. They typically contain many separate components, including images, scripts, customized frames, style sheets and similar. The overheads of setting up both a new TCP session and a new Transport Layer Security (TLS) [4] session for each distinct web object within a compound web resource can become quite significant.

Why not just start afresh and define a new transport protocol that addresses these shortcomings of TCP? The answer is simple: NATs! The solution chosen by QUIC was a UDP-based approach. There is no room left for new transport protocols in today’s network. If what you want to do can’t be achieved within TCP, then all that’s left is UDP.

QUIC is not intended as a replacement for TCP. Indeed, QUIC relies on the continued availability of TCP.0


Achieving 100k connections per second with Elixir

The article discussed scaling Elixir to handle 100k connections per second.

The combination of multiple connection supervisors in Ranch and multiple listener sockets in the Linux kernel is necessary to achieve full utilization of the 36-core machine under the target workload.