links to platform guide (#29846)

This commit is contained in:
Patrik Nordwall 2020-11-30 20:00:39 +01:00 committed by GitHub
parent 12ca84c247
commit 5db6a3a491
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 19 additions and 45 deletions

View file

@ -29,10 +29,8 @@ side of an application, however it can help to migrate data from the write side
simple scenarios Persistence Query may be powerful enough to fulfill the query needs of your app, however we highly
recommend (in the spirit of CQRS) of splitting up the write/read sides into separate datastores as the need arises.
The [CQRS with Akka 2.6 video](https://akka.io/blog/news/2020/02/05/akka-cqrs-video) is a good starting point for
learning how to use `eventsByTag` to implement CQRS with Akka. Also, watch the introduction to
[Event Sourcing with Akka 2.6 video](https://akka.io/blog/news/2020/01/07/akka-event-sourcing-video).
The @extref[Microservices with Akka tutorial](platform-guide:microservices-tutorial/) explains how to
implement an Event Sourced CQRS application with Akka Persistence and Akka Projections.
## Design overview
@ -344,23 +342,8 @@ resilience is important so that if a node crashes the persistent queries are qui
resume operations @ref:[Cluster Sharding](cluster-sharding.md) together with event tagging is an excellent fit to
shard events over a cluster.
The [Lagom framework](https://www.lagomframework.com), which is built on top of Akka encodes many of the best practices
around this. For more details see @java[[Managing Data Persistence](https://www.lagomframework.com/documentation/current/java/ES_CQRS.html)]
@scala[[Managing Data Persistence](https://www.lagomframework.com/documentation/current/scala/ES_CQRS.html)] and
@java[[Persistent Entity](https://www.lagomframework.com/documentation/current/java/PersistentEntity.html)]
@scala[[Persistent Entity](https://www.lagomframework.com/documentation/current/scala/PersistentEntity.html)] in the Lagom documentation.
### Plugin TCK
TODO, not available yet.
## Example project
@java[@extref[CQRS example project](samples:akka-samples-cqrs-java)]
@scala[@extref[CQRS example project](samples:akka-samples-cqrs-scala)]
is an example project that can be downloaded, and with instructions of how to run.
This project contains a Shopping Cart sample illustrating how to use Akka Persistence.
The events are tagged to be consumed by even processors to build other representations
from the events, or publish the events to other services.
The @extref[Microservices with Akka tutorial](platform-guide:microservices-tutorial/) explains how to
use Event Sourcing and Projections together. The events are tagged to be consumed by even processors to build
other representations from the events, or publish the events to other services.

View file

@ -52,12 +52,10 @@ This project contains a Shopping Cart sample illustrating how to use Akka Persis
## CQRS
@java[@extref[CQRS example project](samples:akka-samples-cqrs-java)]
@scala[@extref[CQRS example project](samples:akka-samples-cqrs-scala)]
This project contains a Shopping Cart sample illustrating how to use Akka Persistence.
The events are tagged to be consumed by even processors to build other representations
from the events, or publish the events to other services.
The @extref[Microservices with Akka tutorial](platform-guide:microservices-tutorial/) contains a
Shopping Cart sample illustrating how to use Event Sourcing and Projections together. The events are
tagged to be consumed by even processors to build other representations from the events, or publish the events
to other services.
## Replicated Event Sourcing

View file

@ -20,10 +20,7 @@ In a microservices architecture, you should consider communication within a serv
In general we recommend against using Akka Cluster and actor messaging between _different_ services because that
would result in a too tight code coupling between the services and difficulties deploying these independent of
each other, which is one of the main reasons for using a microservices architecture.
See the discussion on
@scala[[Internal and External Communication](https://www.lagomframework.com/documentation/current/scala/InternalAndExternalCommunication.html)]
@java[[Internal and External Communication](https://www.lagomframework.com/documentation/current/java/InternalAndExternalCommunication.html)]
in the docs of the [Lagom Framework](https://www.lagomframework.com) (where each microservice is an Akka Cluster)
See the discussion on @extref[Internal and External Communication](platform-guide:concepts/internal-and-external-communication.html)
for some background on this.
Nodes of a single service (collectively called a cluster) require less decoupling. They share the same code and

View file

@ -1,11 +1,7 @@
# CQRS
@ref:[EventSourcedBehavior](persistence.md)s along with [Akka Projections](https://doc.akka.io/docs/akka-projection/current/) can be used to implement
Command Query Responsibility Segregation (CQRS).
The @java[@extref[CQRS example project](samples:akka-samples-cqrs-java)]@scala[@extref[CQRS example project](samples:akka-samples-cqrs-scala)]
shows how to do this, including scaling read side processors for building projections.
In the sample the events are tagged to be consumed by even processors to build other representations
from the events, or publish the events to other services.
@ref:[EventSourcedBehavior](persistence.md)s along with [Akka Projections](https://doc.akka.io/docs/akka-projection/current/)
can be used to implement Command Query Responsibility Segregation (CQRS). The @extref[Microservices with Akka tutorial](platform-guide:microservices-tutorial/)
explains how to use Event Sourcing and Projections together.

View file

@ -234,6 +234,7 @@ To continue your journey with Akka, we recommend:
To get from this guide to a complete application you would likely need to provide either an UI or an API. For this we recommend that you look at the following technologies and see what fits you:
* @extref[Microservices with Akka tutorial](platform-guide:microservices-tutorial/) illustrates how to implement an Event Sourced CQRS application with Akka Persistence and Akka Projections
* [Akka HTTP](https://doc.akka.io/docs/akka-http/current/introduction.html) is a HTTP server and client library, making it possible to publish and consume HTTP endpoints
* [Play Framework](https://www.playframework.com) is a full fledged web framework that is built on top of Akka HTTP, it integrates well with Akka and can be used to create a complete modern web UI
* [Lagom](https://www.lagomframework.com) is an opinionated microservice framework built on top of Akka, encoding many best practices around Akka and Play

View file

@ -33,8 +33,8 @@ events to the actor, allowing it to rebuild its state. This can be either the fu
or starting from a checkpoint in a snapshot which can dramatically reduce recovery times.
The [Event Sourcing with Akka 2.6 video](https://akka.io/blog/news/2020/01/07/akka-event-sourcing-video)
is a good starting point for learning Event Sourcing, and then followed by the
[CQRS with Akka 2.6 video](https://akka.io/blog/news/2020/02/05/akka-cqrs-video).
is a good starting point for learning Event Sourcing, together with the @extref[Microservices with Akka tutorial](platform-guide:microservices-tutorial/)
that illustrates how to implement an Event Sourced CQRS application with Akka Persistence and Akka Projections.
@@@ note
@ -676,10 +676,8 @@ reference documentation of the chosen plugin.
is an example project that can be downloaded, and with instructions of how to run.
This project contains a Shopping Cart sample illustrating how to use Akka Persistence.
The Shopping Cart sample is expanded further in the
@java[@extref[CQRS example project](samples:akka-samples-cqrs-java)]
@scala[@extref[CQRS example project](samples:akka-samples-cqrs-scala)]
sample. In that sample the events are tagged to be consumed by even processors to build other representations
The Shopping Cart sample is expanded further in the @extref[Microservices with Akka tutorial](platform-guide:microservices-tutorial/).
In that sample the events are tagged to be consumed by even processors to build other representations
from the events, or publish the events to other services.
@java[@extref[Multi-DC Persistence example project](samples:akka-samples-persistence-dc-java)]

View file

@ -20,6 +20,7 @@ object Paradox {
.url(version.value), // for links like this: @github[#1](#1) or @github[83986f9](83986f9)
"extref.akka.http.base_url" -> "https://doc.akka.io/docs/akka-http/current/%s",
"extref.akka-management.base_url" -> "https://doc.akka.io/docs/akka-management/current/%s",
"extref.platform-guide.base_url" -> "https://developer.lightbend.com/docs/akka-platform-guide/%s",
"extref.wikipedia.base_url" -> "https://en.wikipedia.org/wiki/%s",
"extref.github.base_url" -> (GitHub.url(version.value) + "/%s"), // for links to our sources
"extref.samples.base_url" -> "https://developer.lightbend.com/start/?group=akka&project=%s",