Skip to content
This repository was archived by the owner on Feb 6, 2026. It is now read-only.

Commit 1d0ec39

Browse files
merge: #3482
3482: feat(rebaser): Rebaser uses layerdb activites r=adamhjk a=adamhjk This refactors the rebaser to use a layerdb activities stream. Under the hood it uses a NATS Jetstream work queue. * Makes subscriptions to activities multiplexed (unless they are a work queue) * Adds integration test activities * Adds rebase and rebase_and_wait, which waits for a finish event Co-authored-by: Adam Jacob <adam@systeminit.com>
2 parents 95855b6 + ed2bc7c commit 1d0ec39

File tree

36 files changed

+1047
-787
lines changed

36 files changed

+1047
-787
lines changed

Cargo.lock

Lines changed: 1 addition & 20 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ members = [
3232
"lib/naxum",
3333
"lib/object-tree",
3434
"lib/pinga-server",
35-
"lib/rebaser-client",
3635
"lib/rebaser-core",
3736
"lib/rebaser-server",
3837
"lib/sdf-server",

bin/sdf/BUCK

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ rust_binary(
99
name = "sdf",
1010
deps = [
1111
"//lib/nats-multiplexer:nats-multiplexer",
12-
"//lib/rebaser-client:rebaser-client",
1312
"//lib/sdf-server:sdf-server",
1413
"//lib/si-std:si-std",
1514
"//lib/telemetry-application-rs:telemetry-application",

bin/sdf/Cargo.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ path = "src/main.rs"
1111

1212
[dependencies]
1313
nats-multiplexer = { path = "../../lib/nats-multiplexer" }
14-
rebaser-client = { path = "../../lib/rebaser-client" }
1514
sdf-server = { path = "../../lib/sdf-server" }
1615
si-std = { path = "../../lib/si-std" }
1716
telemetry-application = { path = "../../lib/telemetry-application-rs" }

bin/sdf/src/main.rs

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,6 @@ use sdf_server::{
1313
use telemetry_application::prelude::*;
1414
use tokio_util::{sync::CancellationToken, task::TaskTracker};
1515

16-
use rebaser_client::Config as RebaserClientConfig;
17-
1816
mod args;
1917

2018
type JobProcessor = sdf_server::NatsProcessor;
@@ -111,10 +109,6 @@ async fn async_main() -> Result<()> {
111109

112110
let module_index_url = config.module_index_url().to_string();
113111

114-
// TODO: accept command line arguments and or environment variables to configure the rebaser
115-
// client
116-
let rebaser_config = RebaserClientConfig::default();
117-
118112
let (ws_multiplexer, ws_multiplexer_client) =
119113
Multiplexer::new(&nats_conn, WS_MULTIPLEXER_SUBJECT).await?;
120114
let (crdt_multiplexer, crdt_multiplexer_client) =
@@ -138,7 +132,6 @@ async fn async_main() -> Result<()> {
138132
Some(pkgs_path),
139133
Some(module_index_url),
140134
symmetric_crypto_service,
141-
rebaser_config,
142135
layer_db,
143136
);
144137

lib/dal-test/BUCK

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ rust_library(
88
"//lib/dal:dal",
99
"//lib/module-index-client:module-index-client",
1010
"//lib/pinga-server:pinga-server",
11-
"//lib/rebaser-client:rebaser-client",
1211
"//lib/rebaser-server:rebaser-server",
1312
"//lib/si-crypto:si-crypto",
1413
"//lib/si-data-nats:si-data-nats",

lib/dal-test/Cargo.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ names = { workspace = true }
1818
opentelemetry-otlp = { workspace = true }
1919
opentelemetry_sdk = { workspace = true }
2020
pinga-server = { path = "../../lib/pinga-server" }
21-
rebaser-client = { path = "../../lib/rebaser-client"}
2221
rebaser-server = { path = "../../lib/rebaser-server" }
2322
remain = { workspace = true }
2423
serde = { workspace = true }

lib/dal-test/src/lib.rs

Lines changed: 0 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ use dal::{
1616
use derive_builder::Builder;
1717
use jwt_simple::prelude::RS256KeyPair;
1818
use lazy_static::lazy_static;
19-
use rebaser_client::Config as RebaserClientConfig;
2019
use si_crypto::{
2120
SymmetricCryptoService, SymmetricCryptoServiceConfig, SymmetricCryptoServiceConfigFile,
2221
};
@@ -109,8 +108,6 @@ pub struct Config {
109108
symmetric_crypto_service_config: SymmetricCryptoServiceConfig,
110109
// TODO(nick): determine why this is unused.
111110
#[allow(dead_code)]
112-
#[builder(default)]
113-
rebaser_config: RebaserClientConfig,
114111
#[builder(default = "si_layer_cache::default_pg_pool_config()")]
115112
layer_cache_pg_pool: PgPoolConfig,
116113
}
@@ -219,8 +216,6 @@ pub struct TestContext {
219216
layer_db_pg_pool: PgPool,
220217
/// The sled path for the layer db
221218
layer_db_sled_path: String,
222-
/// The configuration for the rebaser client used in tests
223-
rebaser_config: RebaserClientConfig,
224219
}
225220

226221
impl TestContext {
@@ -313,7 +308,6 @@ impl TestContext {
313308
self.config.pkgs_path.to_owned(),
314309
None,
315310
self.symmetric_crypto_service.clone(),
316-
self.rebaser_config.clone(),
317311
layer_db,
318312
)
319313
}
@@ -396,17 +390,13 @@ impl TestContextBuilder {
396390
SymmetricCryptoService::from_config(&self.config.symmetric_crypto_service_config)
397391
.await?;
398392

399-
let mut rebaser_config = RebaserClientConfig::default();
400-
rebaser_config.set_subject_prefix(universal_prefix);
401-
402393
Ok(TestContext {
403394
config,
404395
pg_pool,
405396
nats_conn,
406397
job_processor,
407398
encryption_key: self.encryption_key.clone(),
408399
symmetric_crypto_service,
409-
rebaser_config,
410400
layer_db_pg_pool,
411401
layer_db_sled_path: si_layer_cache::disk_cache::default_sled_path()?.to_string(),
412402
})
@@ -540,23 +530,13 @@ pub fn pinga_server(services_context: &ServicesContext) -> Result<pinga_server::
540530
/// Configures and builds a [`rebaser_server::Server`] suitable for running alongside DAL
541531
/// object-related tests.
542532
pub fn rebaser_server(services_context: &ServicesContext) -> Result<rebaser_server::Server> {
543-
let _config: rebaser_server::Config = {
544-
let mut config_file = rebaser_server::ConfigFile::default();
545-
rebaser_server::detect_and_configure_development(&mut config_file)
546-
.wrap_err("failed to detect and configure Rebaser ConfigFile")?;
547-
config_file
548-
.try_into()
549-
.wrap_err("failed to build Rebaser server config")?
550-
};
551-
552533
let server = rebaser_server::Server::from_services(
553534
services_context.encryption_key(),
554535
services_context.nats_conn().clone(),
555536
services_context.pg_pool().clone(),
556537
services_context.veritech().clone(),
557538
services_context.job_processor(),
558539
services_context.symmetric_crypto_service().clone(),
559-
services_context.rebaser_config().clone(),
560540
services_context.layer_db().clone(),
561541
)
562542
.wrap_err("failed to create Rebaser server")?;
@@ -702,7 +682,6 @@ async fn global_setup(test_context_builer: TestContextBuilder) -> Result<()> {
702682
.expect("no pkgs path configured"),
703683
test_context.config.module_index_url.clone(),
704684
services_ctx.symmetric_crypto_service(),
705-
services_ctx.rebaser_config().clone(),
706685
services_ctx.layer_db().clone(),
707686
)
708687
.await
@@ -745,7 +724,6 @@ async fn migrate_local_builtins(
745724
pkgs_path: PathBuf,
746725
module_index_url: String,
747726
symmetric_crypto_service: &SymmetricCryptoService,
748-
rebaser_config: RebaserClientConfig,
749727
layer_db: DalLayerDb,
750728
) -> ModelResult<()> {
751729
let services_context = ServicesContext::new(
@@ -757,7 +735,6 @@ async fn migrate_local_builtins(
757735
Some(pkgs_path),
758736
Some(module_index_url),
759737
symmetric_crypto_service.clone(),
760-
rebaser_config,
761738
layer_db.clone(),
762739
);
763740
let dal_context = services_context.into_builder(true);

lib/dal/BUCK

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ rust_library(
1111
"//lib/council-server:council-server",
1212
"//lib/nats-subscriber:nats-subscriber",
1313
"//lib/object-tree:object-tree",
14-
"//lib/rebaser-client:rebaser-client",
1514
"//lib/si-crypto:si-crypto",
1615
"//lib/si-data-nats:si-data-nats",
1716
"//lib/si-data-pg:si-data-pg",
@@ -83,7 +82,6 @@ rust_test(
8382
name = "test-integration",
8483
deps = [
8584
"//lib/dal-test:dal-test",
86-
"//lib/rebaser-client:rebaser-client",
8785
"//lib/rebaser-core:rebaser-core",
8886
"//lib/rebaser-server:rebaser-server",
8987
"//lib/si-pkg:si-pkg",

lib/dal/Cargo.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@ petgraph = { workspace = true }
3333
postcard = { version = "1.0.8", features = ["alloc"] }
3434
postgres-types = { workspace = true }
3535
rand = { workspace = true }
36-
rebaser-client = { path = "../../lib/rebaser-client" }
3736
refinery = { workspace = true }
3837
regex = { workspace = true }
3938
remain = { workspace = true }

0 commit comments

Comments
 (0)