1
- [ ![ Sourcegraph] ( https://img.shields.io/badge/search-this%20repo-blue )] ( https://sourcegraph.com/github.com/pbernet/akka_streams_tutorial " Sourcegraph ")
2
- [ ![ NotebookLM] ( https://img.shields.io/badge/listen%20to-this%20repo-blue )] ( https://notebooklm.google.com/notebook/15ab2fde-4d85-40ed-a7cf-a6fc83223680/audio " NotebookLM ")
3
1
[ ![ GolpoAI] ( https://img.shields.io/badge/watch-intro-blue )] ( https://video.golpoai.com/share/53934a0a-8971-43b6-93cc-217f6663bf28 " GolpoAI ")
2
+ [ ![ NotebookLM] ( https://img.shields.io/badge/listen%20to-this%20repo-blue )] ( https://notebooklm.google.com/notebook/15ab2fde-4d85-40ed-a7cf-a6fc83223680/audio " NotebookLM ")
3
+ [ ![ Sourcegraph] ( https://img.shields.io/badge/search-this%20repo-blue )] ( https://sourcegraph.com/github.com/pbernet/akka_streams_tutorial " Sourcegraph ")
4
4
[ ![ Build Status] ( https://github.com/pbernet/akka_streams_tutorial/actions/workflows/ci.yml/badge.svg )] ( https://github.com/pbernet/akka_streams_tutorial/actions/workflows/ci.yml )
5
5
[ ![ Scala Steward] ( https://img.shields.io/badge/Scala_Steward-helping-blue.svg?style=flat&logo=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAQCAMAAAARSr4IAAAAVFBMVEUAAACHjojlOy5NWlrKzcYRKjGFjIbp293YycuLa3pYY2LSqql4f3pCUFTgSjNodYRmcXUsPD/NTTbjRS+2jomhgnzNc223cGvZS0HaSD0XLjbaSjElhIr+AAAAAXRSTlMAQObYZgAAAHlJREFUCNdNyosOwyAIhWHAQS1Vt7a77/3fcxxdmv0xwmckutAR1nkm4ggbyEcg/wWmlGLDAA3oL50xi6fk5ffZ3E2E3QfZDCcCN2YtbEWZt+Drc6u6rlqv7Uk0LdKqqr5rk2UCRXOk0vmQKGfc94nOJyQjouF9H/wCc9gECEYfONoAAAAASUVORK5CYII= )] ( https://scala-steward.org )
6
6
@@ -26,13 +26,16 @@ and [Pekko HTTP](https://pekko.apache.org/docs/pekko-http/current/) tutorials, b
26
26
27
27
"It's working!" a colleague used to shout across the office when yet another proof of concept was running its first few
28
28
hundred meters along the happy path, aware that the real work started right there. This repo aims to provide you with
29
- exactly this feeling by offering a collection of runnable examples.
29
+ exactly this feeling by offering a collection of runnable examples in Scala and Java .
30
30
31
31
## Getting Started
32
32
33
33
### Prerequisites
34
34
35
- Java 17 or higher (recommended: [ GraalVM] ( https://www.graalvm.org/downloads ) )
35
+ [ Install Java 17 or higher] ( https://adoptium.net/temurin/releases ) (
36
+ recommended: [ GraalVM] ( https://www.graalvm.org/downloads ) )
37
+
38
+ Install [ sbt] ( https://www.scala-sbt.org/download ) and [ Docker] ( https://www.docker.com/get-started/ )
36
39
37
40
### Installation
38
41
@@ -49,7 +52,7 @@ behaviour.
49
52
50
53
## Examples Overview
51
54
52
- Some larger examples:
55
+ Featured examples with complex workflows :
53
56
* [ Element deduplication] ( #element-deduplication )
54
57
* [ Windturbine example] ( #windturbine-example )
55
58
* [ Apache Kafka WordCount] ( #apache-kafka-wordcount )
@@ -66,10 +69,10 @@ operators in action.
66
69
The ` *Echo ` example series implement round trips eg [ HttpFileEcho] ( src/main/scala/akkahttp/HttpFileEcho.scala )
67
70
and [ WebsocketEcho] ( src/main/scala/akkahttp/WebsocketEcho.scala )
68
71
69
- Using [ testcontainers] ( https://www.testcontainers.org ) allows running realistic scenarios with just one click:
72
+ Using [ testcontainers] ( https://www.testcontainers.org ) allows running realistic integration test scenarios with just one
73
+ click:
70
74
71
75
* [ OIDCKeycloak] ( src/main/scala/akkahttp/oidc/OIDCKeycloak.scala )
72
- * [ SSEtoElasticsearch] ( src/main/scala/alpakka/sse_to_elasticsearch/SSEtoElasticsearch.scala )
73
76
* [ ClickhousedbIT] ( src/test/scala/alpakka/clickhousedb/ClickhousedbIT.java )
74
77
* [ InfluxdbIT] ( src/test/scala/alpakka/influxdb/InfluxdbIT.java )
75
78
* [ SlickIT] ( src/test/scala/alpakka/slick/SlickIT.java )
@@ -139,10 +142,10 @@ Colin Breck explains these concepts and more in the 2017 Reactive Summit talk [
139
142
Islands in the Stream: Integrating Akka Streams and Akka Actors
140
143
] ( https://www.youtube.com/watch?v=qaiwalDyayA&list=PLKKQHTLcxDVayICsjpaPeno6aAPMCCZIz&index=4 )
141
144
142
- | Class | Description |
143
- | ------------------- | -----------------|
144
- | [ SimulateWindTurbines] ( src/main/scala/sample/stream_actor/SimulateWindTurbines.scala ) | Starts n clients which feed measurements to the server|
145
- | [ WindTurbineServer] ( src/main/scala/sample/stream_actor/WindTurbineServer.scala ) | Start server which a accumulates measurements|
145
+ | Class | Description |
146
+ | --------------------------------------------------------------------------------------- | --------------------------------------- -----------------|
147
+ | [ SimulateWindTurbines] ( src/main/scala/sample/stream_actor/SimulateWindTurbines.scala ) | Starts n clients which feed measurements to the server |
148
+ | [ WindTurbineServer] ( src/main/scala/sample/stream_actor/WindTurbineServer.scala ) | Start server which collects measurements |
146
149
147
150
The clients communicate via websockets with the ` WindTurbineServer ` . After a restart of ` SimulateWindTurbines ` the clients are able to resume.
148
151
Shutting down the ` WindTurbineServer ` results in reporting to the clients that the server is not reachable.
0 commit comments