diff --git a/DysonNetwork.Develop/appsettings.json b/DysonNetwork.Develop/appsettings.json
index 5aac70a..77eb08b 100644
--- a/DysonNetwork.Develop/appsettings.json
+++ b/DysonNetwork.Develop/appsettings.json
@@ -12,7 +12,8 @@
"ConnectionStrings": {
"App": "Host=localhost;Port=5432;Database=dyson_network_dev;Username=postgres;Password=postgres;Include Error Detail=True;Maximum Pool Size=20;Connection Idle Lifetime=60",
"FastRetrieve": "localhost:6379",
- "Etcd": "etcd.orb.local:2379"
+ "Etcd": "etcd.orb.local:2379",
+ "Stream": "nats.orb.local:4222"
},
"KnownProxies": [
"127.0.0.1",
diff --git a/DysonNetwork.Drive/appsettings.json b/DysonNetwork.Drive/appsettings.json
index b95119e..872ee07 100644
--- a/DysonNetwork.Drive/appsettings.json
+++ b/DysonNetwork.Drive/appsettings.json
@@ -12,7 +12,8 @@
"ConnectionStrings": {
"App": "Host=localhost;Port=5432;Database=dyson_drive;Username=postgres;Password=postgres;Include Error Detail=True;Maximum Pool Size=20;Connection Idle Lifetime=60",
"FastRetrieve": "localhost:6379",
- "Etcd": "etcd.orb.local:2379"
+ "Etcd": "etcd.orb.local:2379",
+ "Stream": "nats.orb.local:4222"
},
"Authentication": {
"Schemes": {
diff --git a/DysonNetwork.Pass/DysonNetwork.Pass.csproj b/DysonNetwork.Pass/DysonNetwork.Pass.csproj
index f2e889c..0b60b09 100644
--- a/DysonNetwork.Pass/DysonNetwork.Pass.csproj
+++ b/DysonNetwork.Pass/DysonNetwork.Pass.csproj
@@ -13,6 +13,7 @@
runtime; build; native; contentfiles; analyzers; buildtransitive
all
+
runtime; build; native; contentfiles; analyzers; buildtransitive
all
diff --git a/DysonNetwork.Pass/appsettings.json b/DysonNetwork.Pass/appsettings.json
index 1117727..8b9275e 100644
--- a/DysonNetwork.Pass/appsettings.json
+++ b/DysonNetwork.Pass/appsettings.json
@@ -12,7 +12,8 @@
"ConnectionStrings": {
"App": "Host=localhost;Port=5432;Database=dyson_pass;Username=postgres;Password=postgres;Include Error Detail=True;Maximum Pool Size=20;Connection Idle Lifetime=60",
"FastRetrieve": "localhost:6379",
- "Etcd": "etcd.orb.local:2379"
+ "Etcd": "etcd.orb.local:2379",
+ "Stream": "nats.orb.local:4222"
},
"Authentication": {
"Schemes": {
diff --git a/DysonNetwork.Pusher/appsettings.json b/DysonNetwork.Pusher/appsettings.json
index c0ecae8..5f77b41 100644
--- a/DysonNetwork.Pusher/appsettings.json
+++ b/DysonNetwork.Pusher/appsettings.json
@@ -11,7 +11,8 @@
"ConnectionStrings": {
"App": "Host=localhost;Port=5432;Database=dyson_pusher;Username=postgres;Password=postgres;Include Error Detail=True;Maximum Pool Size=20;Connection Idle Lifetime=60",
"FastRetrieve": "localhost:6379",
- "Etcd": "etcd.orb.local:2379"
+ "Etcd": "etcd.orb.local:2379",
+ "Stream": "nats.orb.local:4222"
},
"Notifications": {
"Push": {
diff --git a/DysonNetwork.Shared/DysonNetwork.Shared.csproj b/DysonNetwork.Shared/DysonNetwork.Shared.csproj
index 280ffa9..379d309 100644
--- a/DysonNetwork.Shared/DysonNetwork.Shared.csproj
+++ b/DysonNetwork.Shared/DysonNetwork.Shared.csproj
@@ -21,6 +21,7 @@
+
diff --git a/DysonNetwork.Shared/Stream/AccountEvent.cs b/DysonNetwork.Shared/Stream/AccountEvent.cs
new file mode 100644
index 0000000..dec0b18
--- /dev/null
+++ b/DysonNetwork.Shared/Stream/AccountEvent.cs
@@ -0,0 +1,9 @@
+using NodaTime;
+
+namespace DysonNetwork.Shared.Stream;
+
+public class AccountDeletedEvent
+{
+ public Guid AccountId { get; set; } = Guid.NewGuid();
+ public Instant DeletedAt { get; set; } = SystemClock.Instance.GetCurrentInstant();
+}
\ No newline at end of file
diff --git a/DysonNetwork.Shared/Stream/Connector.cs b/DysonNetwork.Shared/Stream/Connector.cs
new file mode 100644
index 0000000..66fed40
--- /dev/null
+++ b/DysonNetwork.Shared/Stream/Connector.cs
@@ -0,0 +1,21 @@
+using Microsoft.Extensions.Configuration;
+using Microsoft.Extensions.DependencyInjection;
+using NATS.Client.Core;
+
+namespace DysonNetwork.Shared.Stream;
+
+public static class Connector
+{
+ public static IServiceCollection AddStreamConnection(this IServiceCollection services, IConfiguration configuration)
+ {
+ var connectionString = configuration.GetConnectionString("Stream");
+ if (connectionString is null)
+ throw new ArgumentNullException(nameof(connectionString));
+ services.AddSingleton(_ => new NatsConnection(new NatsOpts()
+ {
+ Url = connectionString
+ }));
+
+ return services;
+ }
+}
\ No newline at end of file
diff --git a/DysonNetwork.Sphere/DysonNetwork.Sphere.csproj b/DysonNetwork.Sphere/DysonNetwork.Sphere.csproj
index c00b5c2..fa1604d 100644
--- a/DysonNetwork.Sphere/DysonNetwork.Sphere.csproj
+++ b/DysonNetwork.Sphere/DysonNetwork.Sphere.csproj
@@ -30,6 +30,7 @@
all
runtime; build; native; contentfiles; analyzers; buildtransitive
+
all
runtime; build; native; contentfiles; analyzers; buildtransitive
diff --git a/DysonNetwork.Sphere/appsettings.json b/DysonNetwork.Sphere/appsettings.json
index 0f22668..44f42c2 100644
--- a/DysonNetwork.Sphere/appsettings.json
+++ b/DysonNetwork.Sphere/appsettings.json
@@ -12,7 +12,8 @@
"ConnectionStrings": {
"App": "Host=localhost;Port=5432;Database=dyson_network;Username=postgres;Password=postgres;Include Error Detail=True;Maximum Pool Size=20;Connection Idle Lifetime=60",
"FastRetrieve": "localhost:6379",
- "Etcd": "etcd.orb.local:2379"
+ "Etcd": "etcd.orb.local:2379",
+ "Stream": "nats.orb.local:4222"
},
"GeoIp": {
"DatabasePath": "./Keys/GeoLite2-City.mmdb"