22 private links
The topic of microservices in IT world is still alive. Like every novelty — it makes lots of noise and causes lots of controversies.
Define a pact between service consumers and providers, enabling "consumer-driven contract" testing.
Pact provides an RSpec DSL for service consumers to define the HTTP requests they will make to a service provider and the HTTP responses they expect back. These expectations are used in the consumers' specs to provide a mock service provider. The interactions are recorded and played back in the service provider specs to ensure the service provider actually does provide the response the consumer expects.
This allows testing of both sides of an integration point using fast unit tests.
Independent Systems Architecture (ISA) is a set of principles useful in microservices applications
- Introduction
- Using HTTP
2.1. SOAP
2.2. REST
2.3. REST: Contracts on the Rescue
2.4. GraphQL - Not only HTTP
3.1. gRPC
3.2. Apache Thrift
3.3. Apache Avro - REST, GraphQL, gRPC, Thrift … how to choose?
- Message passing
5.1. WebSockets and Server-Sent Events
5.2. Message Queues and Brokers
5.3. Actor Model
5.4. Aeron
5.5. RSocket - Cloud native
6.1. Function as a service
6.2. Knative - Conclusions
- What’s next
Read through the following principles and ask if the application in question benefits from a given principle. If you answer “yes” for one or more of the following principles, the feature is a good candidate to be a microservice. If you answer “no” for every principle, you are likely introducing accidental complexity into your system.
There are cases where great efforts have been made to adopt microservice patterns without understanding the specifics of the problem at hand...
key takeaways z.B.: Domain events are great for decentralised data-management, generating read-models or tackling cross-cutting concerns. However, you should not implement complex peer-to-peer event chains. Using commands to coordinate other services will reduce your coupling even further.
RIG is a scalable, open source gateway to your microservices. It solves the problem of connection state (which users are online currently, with which devices), which allows your microservices to be stateless. Pushing arbitrary messages to all connected front-ends of a specific user becomes as easy as publishing a message to a Kafka topic.
Alle wollen Microservices, aber Microservices bergen teilweise erhebliche Risiken und beheben nicht einfach die den Monolithen zugrundeliegenden Probleme.
Java / Microservice blog