implement non blocking flow based architecture for payments

This commit is contained in:
Timur Gordon
2025-07-09 23:39:17 +02:00
parent 3b1bc9a838
commit 1bcdad6a17
28 changed files with 4861 additions and 1317 deletions

View File

@@ -1,4 +1,4 @@
use rhai_client::RhaiClientBuilder;
use rhai_dispatcher::RhaiDispatcherBuilder;
use rhailib_worker::spawn_rhai_worker;
use std::time::Duration;
use tempfile::Builder;
@@ -38,7 +38,7 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
tokio::time::sleep(Duration::from_secs(1)).await;
// Alice populates her rhai worker
let client_alice = RhaiClientBuilder::new()
let client_alice = RhaiDispatcherBuilder::new()
.redis_url(REDIS_URL)
.caller_id(ALICE_ID)
.build()
@@ -57,7 +57,7 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
log::info!("Alice's database populated.");
// Bob queries Alice's rhai worker
let client_bob = RhaiClientBuilder::new()
let client_bob = RhaiDispatcherBuilder::new()
.redis_url(REDIS_URL)
.caller_id(BOB_ID)
.build()
@@ -76,7 +76,7 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
log::info!("Bob's query to Alice's database completed.");
// Charlie queries Alice's rhai worker
let client_charlie = RhaiClientBuilder::new()
let client_charlie = RhaiDispatcherBuilder::new()
.redis_url(REDIS_URL)
.caller_id(CHARLIE_ID)
.build()
@@ -107,7 +107,7 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
));
// Alice populates the rhai worker of their circle with Charlie.
let client_circle = RhaiClientBuilder::new()
let client_circle = RhaiDispatcherBuilder::new()
.redis_url(REDIS_URL)
.caller_id(CIRCLE_ID)
.build()
@@ -142,7 +142,7 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
log::info!("Bob's query to Alice's database completed.");
// Charlie queries Alice's rhai worker
let client_charlie = RhaiClientBuilder::new()
let client_charlie = RhaiDispatcherBuilder::new()
.redis_url(REDIS_URL)
.caller_id(CHARLIE_ID)
.build()