From 836d020e782fb13ab264c2b2ca783d77f88c8f4f Mon Sep 17 00:00:00 2001 From: Arnout Engelen Date: Mon, 12 Aug 2019 15:47:54 +0200 Subject: [PATCH] Remove 'How To' section of the docs (#27223) --- akka-docs/src/main/paradox/.htaccess | 1 + akka-docs/src/main/paradox/howto.md | 177 --------------------------- akka-docs/src/main/paradox/index.md | 1 - 3 files changed, 1 insertion(+), 178 deletions(-) delete mode 100644 akka-docs/src/main/paradox/howto.md diff --git a/akka-docs/src/main/paradox/.htaccess b/akka-docs/src/main/paradox/.htaccess index 5374fd797f..b44114bf29 100644 --- a/akka-docs/src/main/paradox/.htaccess +++ b/akka-docs/src/main/paradox/.htaccess @@ -29,3 +29,4 @@ RedirectMatch 301 ^(.*[^d])/guide/(.*) $1/typed/guide/$2 RedirectMatch 301 ^(.*)/additional/rolling-deploys\.html$ $1/additional/rolling-updates.html RedirectMatch 301 ^(.*)/additional/index\.html$ $1/project/index.html +RedirectMatch 301 ^(.*)/howto\.html$ https://doc.akka.io/docs/akka/2.5/howto.html diff --git a/akka-docs/src/main/paradox/howto.md b/akka-docs/src/main/paradox/howto.md deleted file mode 100644 index d76abd4046..0000000000 --- a/akka-docs/src/main/paradox/howto.md +++ /dev/null @@ -1,177 +0,0 @@ -# HowTo: Common Patterns - -This section lists common actor patterns which have been found to be useful, -elegant or instructive. Anything is welcome, example topics being message -routing strategies, supervision patterns, restart handling, etc. As a special -bonus, additions to this section are marked with the contributor’s name, and it -would be nice if every Akka user who finds a recurring pattern in his or her -code could share it for the profit of all. Where applicable it might also make -sense to add to the `akka.pattern` package for creating an [OTP-like library](http://www.erlang.org/doc/man_index.html). - -@@@ div { .group-java } - -You might find some of the patterns described in the Scala chapter of -this page useful even though the example code is written in Scala. - -@@@ - -@@@ div { .group-scala } - -## Throttling Messages - -Contributed by: Kaspar Fischer - -"A message throttler that ensures that messages are not sent out at too high a rate." - -The pattern is described in [Throttling Messages in Akka 2](http://letitcrash.com/post/28901663062/throttling-messages-in-akka-2). - -## Balancing Workload Across Nodes - -Contributed by: Derek Wyatt - -"Often times, people want the functionality of the BalancingDispatcher with the -stipulation that the Actors doing the work have distinct Mailboxes on remote -nodes. In this post we’ll explore the implementation of such a concept." - -The pattern is described [Balancing Workload across Nodes with Akka 2](http://letitcrash.com/post/29044669086/balancing-workload-across-nodes-with-akka-2). - -## Work Pulling Pattern to throttle and distribute work, and prevent mailbox overflow - -Contributed by: Michael Pollmeier - -"This pattern ensures that your mailboxes don’t overflow if creating work is fast than -actually doing it – which can lead to out of memory errors when the mailboxes -eventually become too full. It also let’s you distribute work around your cluster, -scale dynamically scale and is completely non-blocking. This pattern is a -specialisation of the above 'Balancing Workload Pattern'." - -The pattern is described [Work Pulling Pattern to prevent mailbox overflow, throttle and distribute work](http://www.michaelpollmeier.com/akka-work-pulling-pattern). - -## Ordered Termination - -Contributed by: Derek Wyatt - -"When an Actor stops, its children stop in an undefined order. Child termination is -asynchronous and thus non-deterministic. - -If an Actor has children that have order dependencies, then you might need to ensure -a particular shutdown order of those children so that their postStop() methods get -called in the right order." - -The pattern is described [An Akka 2 Terminator](http://letitcrash.com/post/29773618510/an-akka-2-terminator). - -## Akka AMQP Proxies - -Contributed by: Fabrice Drouin - -"“AMQP proxies” is a simple way of integrating AMQP with Akka to distribute jobs across a network of computing nodes. -You still write “local” code, have very little to configure, and end up with a distributed, elastic, -fault-tolerant grid where computing nodes can be written in nearly every programming language." - -The pattern is described [Akka AMQP Proxies](http://letitcrash.com/post/29988753572/akka-amqp-proxies). - -## Shutdown Patterns in Akka 2 - -Contributed by: Derek Wyatt - -“How do you tell Akka to shut down the ActorSystem when everything’s finished? -It turns out that there’s no magical flag for this, no configuration setting, no special callback you can register for, -and neither will the illustrious shutdown fairy grace your application with her glorious presence at that perfect moment. -She’s just plain mean. - -In this post, we’ll discuss why this is the case and provide you with a simple option for shutting down “at the right time”, -as well as a not-so-simple-option for doing the exact same thing." - -The pattern is described [Shutdown Patterns in Akka 2](http://letitcrash.com/post/30165507578/shutdown-patterns-in-akka-2). - -## Distributed (in-memory) graph processing with Akka - -Contributed by: Adelbert Chang - -"Graphs have always been an interesting structure to study in both mathematics and computer science (among other fields), -and have become even more interesting in the context of online social networks such as Facebook and Twitter, -whose underlying network structures are nicely represented by graphs." - -The pattern is described [Distributed In-Memory Graph Processing with Akka](http://letitcrash.com/post/30257014291/distributed-in-memory-graph-processing-with-akka). - -## Case Study: An Auto-Updating Cache Using Actors - -Contributed by: Eric Pederson - -"We recently needed to build a caching system in front of a slow backend system with the following requirements: - -The data in the backend system is constantly being updated so the caches need to be updated every N minutes. -Requests to the backend system need to be throttled. -The caching system we built used Akka actors and Scala’s support for functions as first class objects." - -The pattern is described [Case Study: An Auto-Updating Cache using Actors](http://letitcrash.com/post/30509298968/case-study-an-auto-updating-cache-using-actors). - -## Discovering message flows in actor systems with the Spider Pattern - -Contributed by: Raymond Roestenburg - -"Building actor systems is fun but debugging them can be difficult, you mostly end up browsing through many log files -on several machines to find out what’s going on. I’m sure you have browsed through logs and thought, -“Hey, where did that message go?”, “Why did this message cause that effect” or “Why did this actor never get a message?” - -This is where the Spider pattern comes in." - -The pattern is described [Discovering Message Flows in Actor System with the Spider Pattern](http://letitcrash.com/post/30585282971/discovering-message-flows-in-actor-systems-with-the). - -@@@ - -## Scheduling Periodic Messages - -See @ref:[Actor Timers](actors.md#actors-timers) - -@@@ div { .group-java } - -## Single-Use Actor Trees with High-Level Error Reporting - -*Contributed by: Rick Latrine* - -A nice way to enter the actor world from java is the use of `Patterns.ask()`. -This method starts a temporary actor to forward the message and collect the result from the actor to be "asked". -In case of errors within the asked actor the default supervision handling will take over. -The caller of `Patterns.ask()` will *not* be notified. - -If that caller is interested in such an exception, they must make sure that the asked actor replies with `Status.Failure(Throwable)`. -Behind the asked actor a complex actor hierarchy might be spawned to accomplish asynchronous work. -Then supervision is the established way to control error handling. - -Unfortunately the asked actor must know about supervision and must catch the exceptions. -Such an actor is unlikely to be reused in a different actor hierarchy and contains crippled try/catch blocks. - -This pattern provides a way to encapsulate supervision and error propagation to the temporary actor. -Finally the promise returned by `Patterns.ask()` is fulfilled as a failure, including the exception -(see also @ref:[Java 8 Compatibility](java8-compat.md) for Java compatibility). - -Let's have a look at the example code: - -@@snip [SupervisedAsk.java](/akka-docs/src/test/java/jdocs/pattern/SupervisedAsk.java) - -In the `askOf` method the `SupervisorCreator` is sent the user message. -The `SupervisorCreator` creates a `SupervisorActor` and forwards the message. -This prevents the actor system from overloading due to actor creations. -The `SupervisorActor` is responsible to create the user actor, forwards the message, handles actor termination and supervision. -Additionally the `SupervisorActor` stops the user actor if execution time expired. - -In case of an exception the supervisor tells the temporary actor which exception was thrown. -Afterwards the actor hierarchy is stopped. - -Finally we are able to execute an actor and receive the results or exceptions. - -@@snip [SupervisedAskSpec.java](/akka-docs/src/test/java/jdocs/pattern/SupervisedAskSpec.java) - -@@@ - -## Scalable Distributed Event Sourcing and CQRS - -The [Lagom Framework](https://www.lagomframework.com) encodes many best practices in combining @ref:[Akka Persistence](persistence.md) and @ref:[Akka Persistence Query](persistence-query.md) -with @ref:[Cluster Sharding](cluster-sharding.md) to build scalable and resilient systems with Event Sourcing and CQRS. - -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. - diff --git a/akka-docs/src/main/paradox/index.md b/akka-docs/src/main/paradox/index.md index 082ac228c4..c986c24702 100644 --- a/akka-docs/src/main/paradox/index.md +++ b/akka-docs/src/main/paradox/index.md @@ -15,7 +15,6 @@ * [index-utilities](index-utilities.md) * [common/other-modules](common/other-modules.md) * [additional/deploy](additional/deploy.md) -* [howto](howto.md) * [project/index](project/index.md) * [classic](index-classic.md)