Testing
The goal of a test is to verify the behavior of the System Under Test (SUT). An SUT might be as small as a class or as large as an entire application. The Challenge of Testing Microservices Each i...
The goal of a test is to verify the behavior of the System Under Test (SUT). An SUT might be as small as a class or as large as an entire application. The Challenge of Testing Microservices Each i...
One approach to API design is for clients to invoke the services directly. But this approach is rarely used in a microservice architecture because of the following drawbacks: the fine-grained se...
Writing queries in a microservice architecture is challenging. Queries often need to retrieve data that’s scattered among the databases owned by multiple services. There are two different patterns...
Developing complex business logic is always challenging. Developing complex business logic is even more challenging in a microservice architecture where the business logic is spread over multiple s...
The traditional approach to maintaining data consistency across multiple services, databases, or message brokers is to use distributed transactions. The de facto standard for distributed transactio...
The microservice architecture structures an application as a set of services. Those services must often collaborate in order to handle a request. Because service instances are typically processes r...
A three-step process for decomposition: Identify system operations Identify services Define service APIs and collaborations Identify system operations A two-step process: The first step cr...
Software Architecture The software architecture of a computing system is the set of structures needed to reason about the system, which comprise software elements, relations among them, and propert...
Threading and Hardware Threading at the software level allows us to take advantage of a machine’s multiple cores and hyper-threads. From a Java perspective, we will consider the hyper-threads as ac...
The JIT (just-in-time) compiler is the heart of the JVM, nothing controls the performance of your application more than the JIT compiler. Computers, more specifically CPUs, can execute only a rela...