SQL Server supports the following isolation levels: Read Uncommitted, Read Committed (The default), Repeatable Read, Serializable, Snapshot.
A Saga maintains data consistency across multiple services by using a sequence of local transactions, so without using (ACID) distributed transactions. As an example, think of an e-commerce store where customers can only create orders when their credit limit is not exceeded.
Microservices typically have their own database in order to be decoupled from other services. But we can also use a single database that is shared by multiple services. This is the shared database pattern. With a shared database, each service can freely access data owned by other services using local ACID transactions.
Modern applications are typically architected as distributed collections of microservices. As the collection of microservices grows in size and complexity, it can become harder to understand and route message traffic between services. That’s where Dapr and service meshes come in.
The Circuit Breaker pattern prevents an application from performing an operation that’s likely to fail. Related to the Circuit Breaker pattern, is the Health Check API. The Health Check API contains an operation (eg HTTP /health) that returns the health of the service.
The CQRS pattern is related to the Database Per Service pattern. CQRS stands for Command Query Responsibility Segregation. With CQRS A separate view database is created and used as a read-only replica to query the data. An alternative to CQRS is API Composition.
Each micro service has its own database in order to be decoupled from other services. This the Database per Service pattern. Related patterns discussed are the Saga pattern, event sourcing and the transactional outbox.
In business-to-business scenarios, mutual TLS (or mTLS) is highly useful. It ensures traffic is secure and trusted in both directions between a client and server. The organization implementing mTLS acts as its own certificate authority. mTLS is often used in a Zero Trust security framework.
A Single Page Application is a literally an application with a single static page. In Angular the dynamic sections of your UI are referred to as microfrontends. Each microfrontend is an Angular CLI project that can use its own version of Angular and be deployed separately from any other.
Ideally Integration and BI work together on data ingestion, especially when the primary applications are outsourced to independent software vendors. But most often there’s no such cooperation. How come? Looking at the Lambda and the Kappa Architecture can be an interesting angle to reflect on the issue.