All Projects → RedElastic → Reactive Stock Trader

RedElastic / Reactive Stock Trader

Licence: apache-2.0
A Stock Trader system to demonstrate reactive systems development

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Reactive Stock Trader

Kendo React
Issue tracker - KendoReact http://www.telerik.com/kendo-react-ui/
Stars: ✭ 77 (-14.44%)
Mutual labels:  reactive-programming
Typescript Event Sourcing
Domain Driven Design, Event Sourcing & Command Query Responsibility Segregation with Typescript
Stars: ✭ 83 (-7.78%)
Mutual labels:  ddd
Spring 5 Examples
This repository is contains spring-boot 2 / spring framework 5 project examples. Using reactive programming model / paradigm and Kotlin
Stars: ✭ 87 (-3.33%)
Mutual labels:  reactive-programming
Ddd With Kotlin
A demo project to show a Domain Driven Design with Kotlin.
Stars: ✭ 78 (-13.33%)
Mutual labels:  ddd
Reactiveandroid
Reactive events and properties with RxJava for Android
Stars: ✭ 80 (-11.11%)
Mutual labels:  reactive-programming
Monolith Microservice Shop
Source code for https://threedots.tech/post/microservices-or-monolith-its-detail/ article.
Stars: ✭ 83 (-7.78%)
Mutual labels:  ddd
Neutronium
🚀 Build .NET desktop applications using HTML, CSS and javascript.
Stars: ✭ 1,190 (+1222.22%)
Mutual labels:  reactive-programming
Context Mapper Dsl
ContextMapper DSL: A Domain-specific Language for Context Mapping & Service Decomposition
Stars: ✭ 88 (-2.22%)
Mutual labels:  ddd
Bankflix
Aplicação que simula um banco digital, contendo a área do cliente e administrativa, permitindo depósitos e transferências entre contas do mesmo banco. | Application that simulates a digital bank, containing the customer and administrative areas, allowing deposits and transfers between accounts of the same bank.
Stars: ✭ 82 (-8.89%)
Mutual labels:  ddd
Sample Dotnet Core Cqrs Api
Sample .NET Core REST API CQRS implementation with raw SQL and DDD using Clean Architecture.
Stars: ✭ 1,273 (+1314.44%)
Mutual labels:  ddd
Nestjs Cqrs Starter
NestJS CQRS Microservices Starter Project
Stars: ✭ 80 (-11.11%)
Mutual labels:  ddd
Dilate
Nearly zero runtime object allocation powered by scalameta. Value class and Unboxed Tagged Type generation at compile-time.
Stars: ✭ 80 (-11.11%)
Mutual labels:  ddd
Bulb
A reactive programming library for JavaScript.
Stars: ✭ 84 (-6.67%)
Mutual labels:  reactive-programming
Symfony Ddd Edition
Symfony standard edition with DDD architecture.
Stars: ✭ 78 (-13.33%)
Mutual labels:  ddd
Aspnetcore Ddd
Full ASP.NET Core 3.1 LTS application with DDD, CQRS and Event Sourcing
Stars: ✭ 88 (-2.22%)
Mutual labels:  ddd
Agilework
可视化低代码快速开发平台,面向业务、企业管理系统定制开发平台和应用平台,包括设计器、应用端。提供业务配置和集成开发能力,用户通过可视化拖拉拽配置式操作即可快速构建出能同时在PC和移动端运行的各类管理系统,对于企业客户的信息系统在管理模式、业务流程、表单界面、数据可视化展示、IoT管控等个性化需求,可以通过设计器,快速的进行个性化配置。并支持企业微信,公众号,钉钉等移动集成,实现用户跨区域移动办公。从而构建企业个性化的行业应用、集成应用和复杂的业务报表。
Stars: ✭ 76 (-15.56%)
Mutual labels:  ddd
Hex Arch Kotlin Spring Boot
Reference JVM multi module project for a reactive micro service and lambda using a hexagonal architecture, DDD, Kotlin, Spring Boot, Quarkus, Lambda, Gradle.
Stars: ✭ 83 (-7.78%)
Mutual labels:  ddd
Spring Data Redis
Provides support to increase developer productivity in Java when using Redis, a key-value store. Uses familiar Spring concepts such as a template classes for core API usage and lightweight repository style data access.
Stars: ✭ 1,293 (+1336.67%)
Mutual labels:  ddd
Productcontext Eventsourcing
A practical/experimental Event Sourcing application on Product Bounded Context in an e-commerce
Stars: ✭ 88 (-2.22%)
Mutual labels:  ddd
Spring Data Mongodb
Provide support to increase developer productivity in Java when using MongoDB. Uses familiar Spring concepts such as a template classes for core API usage and lightweight repository style data access.
Stars: ✭ 1,253 (+1292.22%)
Mutual labels:  ddd

Reactive in Practice: An Introduction

Reactive in practice: A complete guide to event-driven systems development in Java is a 12 part series that takes learners through the entire spectrum of a real-world event-sourced project from inception to deployment. This reference architecture is to support the series, originally published on IBM Developer:

Complete examples of this material are very sparse in the industry because they are so time intensive to create. However, with the support of IBM and the IBM Developer portal, we've brought this material to life. We hope it inspires the community and showcases best practices of these technologies. Special thanks to Lightbend for peer review assistance.

The main technologies showcased:

  • Java
  • Lagom
  • Play
  • Kafka
  • Cassandra

Published units of learning materials

As of this date, 8 of 12 units of this series have been finished and are reflected in the code:

The remaining 4 units of this series are still under construction, so the topics reflected may not be in this repo yet:

  • Unit 9: Microservice integration patterns
  • Unit 10: Streaming data
  • Unit 11: Deploying and monitoring reactive systems in the cloud
  • Unit 12: Recap and conclusion

Contributions

If you would like to contribute, fork this repo and issue a PR. All contributions are welcome!

Installation

The following will help you get set up in the following contexts:

  • Local development
  • Deployment to local Kubernetes (using Minikube)
  • Interactions (UI, command line)

Local development

  • Install Java 8 SDK
  • Install sbt (brew install sbt on Mac)

Running Lagom in development mode is simple. Start by launching the backend services using sbt.

  • sbt runAll

The BFF exposes an API to the frontend on port 9100.

Deploying to Kubernetes

For instructions on how to deploy Reactive Stock Trader to Kubernetes, you can find the deployment instructions and Helm Charts for Kafka and Cassandra here: https://github.com/RedElastic/reactive-stock-trader/tree/master/deploy

Interacting with the UI

The UI is developed in Vue.js. You'll need to have Node.js and npm installed and then follow the instructions below.

Project setup and launching for development:

npm install
npm run serve

This will launch the UI on localhost:8080 for development. You can then use the UI to interact with the Lagom system.

Testing / debugging:

  • Run your tests: npm run test
  • Lints and fixes files: npm run lint

Reactive Stock Trader uses Rollbar for debugging purposes. In order to make use of Rollbar:

  • copy config.env to .env.local
  • sign up at Rollbar and create an access token
  • change VUE_APP_ROLLBAR_ACCESS_TOKEN to your token in .env.local

Visit Environment Variables and Modes and https://rollbar.com for more details.

For additional Vue configuration information, see Configuration Reference.

Interacting with the command line

If you would like to test the backend without installing the UI, you can use the following command line information to help.

The jq command line tool for JSON is very handy for pretty printing JSON responses, on Mac this can be installed with brew install jq.

Create a new portfolio named "piggy bank savings": PID=$(curl -X POST http:/localhost:9000/api/portfolio -F name="piggy bank savings" | jq -r .portfolioId); echo $PID

Place an order: curl -X POST http://localhost:9000/api/portfolio/$PID/order -F symbol=RHT -F shares=10 -F order=buy

View the portfolio curl http://localhost:9000/api/portfolio/$PID | jq .

Transfer funds into the portfolio curl -X POST http://localhost:9000/api/transfer -F amount=20000 -F sourceType=savings -F sourceId=123 -F destinationType=portfolio -F destinationId=$PID

PID=$(curl -X POST http:/localhost:9000/api/portfolio -F name="piggy bank savings" | jq -r .portfolioId); echo $PID

curl -X POST http://localhost:9000/api/transfer -F amount=20000 -F sourceType=savings -F sourceId=123 -F destinationType=portfolio -F destinationId=$PID

curl http://localhost:9000/api/portfolio/$PID | jq .

curl -X POST http://localhost:9000/api/portfolio/$PID/order -F symbol=IBM -F shares=10 -F order=buy

curl http://localhost:9000/api/portfolio/$PID | jq .
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].