https://github.com/lhotari/reactive-iot-backend-apachecon2021
source code of the live coding demo for "Building resilient and scalable API backends with Apache Pulsar and Spring Reactive" talk held at ApacheCon@Home 2021
https://github.com/lhotari/reactive-iot-backend-apachecon2021
apache-pulsar project-reactor reactive-pulsar reactive-streams spring-reactive tutorials
Last synced: 10 months ago
JSON representation
source code of the live coding demo for "Building resilient and scalable API backends with Apache Pulsar and Spring Reactive" talk held at ApacheCon@Home 2021
- Host: GitHub
- URL: https://github.com/lhotari/reactive-iot-backend-apachecon2021
- Owner: lhotari
- License: apache-2.0
- Created: 2021-09-21T12:10:00.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2024-12-04T16:25:36.000Z (over 1 year ago)
- Last Synced: 2025-04-15T02:53:50.769Z (about 1 year ago)
- Topics: apache-pulsar, project-reactor, reactive-pulsar, reactive-streams, spring-reactive, tutorials
- Language: Java
- Homepage:
- Size: 619 KB
- Stars: 4
- Watchers: 2
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# reactive-iot-backend
The is the source code of the live coding demo for ["Building resilient and scalable API backends with Apache Pulsar and Spring Reactive"
talk held at ApacheCon@Home 2021 by Lari Hotari](https://www.apachecon.com/acah2021/tracks/apimicro.html).
* [Slides for the presentation]()
* [Recording for the presentation](https://youtu.be/-Vp2Rxs2l9Y?t=28)
Update 12/2023: This example project has been updated to use latest versions of Pulsar Reactive Client and Spring for Apache Pulsar. This code base uses Pulsar Reactive Client directly, without the special annotation support Spring for Apache Pulsar.
## Running
Run each of the commands in a separate terminal window/tab.
### Start Pulsar in docker
Make sure that ports 8080 and 6650 are available.
```bash
docker run -it -p 8080:8080 -p 6650:6650 apachepulsar/pulsar:4.0.1 /pulsar/bin/pulsar standalone -nss -nfw
```
### Start the application
```bash
./gradlew bootRun
```
The application starts on port 8081.
### Generate 1 million telemetry events with a shell script and curl
```bash
{ for i in {1..1000000}; do echo '{"n": "device'$i'/sensor1", "v": '$i'.123}'; done; } \
| curl -X POST -T - -H "Content-Type: application/x-ndjson" localhost:8081/telemetry
```
### Stream events to console with curl
```bash
curl -N localhost:8081/firehose
```
## License
This is Open Source Software released under the [Apache Software License 2.0](www.apache.org/licenses/LICENSE-2.0).
## References
* Apache Pulsar: https://pulsar.apache.org/
* Spring Reactive: https://spring.io/reactive
* Spring for Apache Pulsar: https://spring.io/projects/spring-pulsar/
* Reactive client for Apache Pulsar: https://github.com/apache/pulsar-client-reactive
* Reactive Pulsar showcase application: https://github.com/lhotari/reactive-pulsar-showcase
## Questions
* [apache-pulsar](https://stackoverflow.com/tags/apache-pulsar) and [reactive-pulsar](https://stackoverflow.com/tags/reactive-pulsar) tags on Stackoverflow
* Join [Pulsar Slack for live discussions](https://pulsar.apache.org/en/contact/), there is #reactive-pulsar channel on Pulsar Slack.