solid_objects 0.16.0 → 0.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +88 -0
  3. data/README.md +1 -0
  4. data/app/models/solid_objects/message.rb +15 -0
  5. data/docs/architecture.md +16 -6
  6. data/docs/authorization.md +10 -3
  7. data/docs/observability.md +186 -0
  8. data/docs/realtime.md +4 -3
  9. data/docs/reminders.md +3 -1
  10. data/docs/roadmap.md +17 -1
  11. data/docs/security.md +2 -2
  12. data/docs/transmission.md +17 -6
  13. data/lib/solid_objects/activation.rb +6 -3
  14. data/lib/solid_objects/activation_manager.rb +2 -1
  15. data/lib/solid_objects/actor.rb +29 -2
  16. data/lib/solid_objects/actor_channel.rb +9 -1
  17. data/lib/solid_objects/actor_snapshot.rb +14 -8
  18. data/lib/solid_objects/broadcast_executor.rb +1 -0
  19. data/lib/solid_objects/client.rb +15 -1
  20. data/lib/solid_objects/configuration.rb +4 -0
  21. data/lib/solid_objects/database_adapters/sqlite.rb +7 -1
  22. data/lib/solid_objects/diagnostics.rb +83 -0
  23. data/lib/solid_objects/effect_executor.rb +4 -0
  24. data/lib/solid_objects/effect_recovery_coordinator.rb +7 -2
  25. data/lib/solid_objects/errors.rb +3 -0
  26. data/lib/solid_objects/executor.rb +34 -16
  27. data/lib/solid_objects/instrumentation.rb +22 -1
  28. data/lib/solid_objects/log_subscriber.rb +1 -1
  29. data/lib/solid_objects/mailbox.rb +5 -1
  30. data/lib/solid_objects/message_reference.rb +9 -9
  31. data/lib/solid_objects/observer_registry.rb +47 -0
  32. data/lib/solid_objects/payload_broadcast.rb +9 -8
  33. data/lib/solid_objects/reference.rb +19 -0
  34. data/lib/solid_objects/reminder_scheduler.rb +5 -0
  35. data/lib/solid_objects/state_snapshot.rb +1 -0
  36. data/lib/solid_objects/supervisor.rb +3 -6
  37. data/lib/solid_objects/synchronous_invocation.rb +1 -21
  38. data/lib/solid_objects/telemetry.rb +137 -0
  39. data/lib/solid_objects/version.rb +1 -1
  40. data/lib/solid_objects/wake_up_adapters/postgresql.rb +1 -2
  41. data/lib/solid_objects/wake_up_adapters/redis.rb +1 -2
  42. data/lib/solid_objects/worker.rb +1 -2
  43. data/lib/solid_objects.rb +10 -0
  44. data/sig/generated/lib/solid_objects/actor.rbs +9 -0
  45. data/sig/generated/lib/solid_objects/actor_channel.rbs +3 -0
  46. data/sig/generated/lib/solid_objects/actor_snapshot.rbs +7 -2
  47. data/sig/generated/lib/solid_objects/client.rbs +3 -0
  48. data/sig/generated/lib/solid_objects/configuration.rbs +7 -3
  49. data/sig/generated/lib/solid_objects/diagnostics.rbs +25 -0
  50. data/sig/generated/lib/solid_objects/errors.rbs +3 -0
  51. data/sig/generated/lib/solid_objects/executor.rbs +10 -2
  52. data/sig/generated/lib/solid_objects/message_reference.rbs +6 -6
  53. data/sig/generated/lib/solid_objects/observer_registry.rbs +29 -0
  54. data/sig/generated/lib/solid_objects/payload_broadcast.rbs +2 -4
  55. data/sig/generated/lib/solid_objects/reference.rbs +9 -0
  56. data/sig/generated/lib/solid_objects/synchronous_invocation.rbs +0 -3
  57. data/sig/generated/lib/solid_objects/telemetry.rbs +30 -0
  58. data/sig/generated/lib/solid_objects.rbs +3 -0
  59. data/sig/generated/models/solid_objects/message.rbs +3 -0
  60. data/sig/public/json_value.rbs +3 -0
  61. data/sig/public/telemetry.rbs +49 -0
  62. data/sig/support/framework.rbs +5 -0
  63. metadata +11 -2
@@ -0,0 +1,49 @@
1
+ module SolidObjects
2
+ type telemetry_value = String | Integer | Float | bool | nil
3
+
4
+ type metric_sample = {
5
+ "name" => String,
6
+ "kind" => "counter" | "gauge" | "histogram",
7
+ "unit" => "1" | "ms",
8
+ "value" => Integer | Float,
9
+ "labels" => Hash[String, String]
10
+ }
11
+
12
+ type portable_event = {
13
+ "schemaVersion" => Integer,
14
+ "name" => String,
15
+ "occurredAt" => String,
16
+ "adapter" => String,
17
+ "actorType" => String?,
18
+ "actorId" => String?,
19
+ "incarnation" => String?,
20
+ "revision" => String?,
21
+ "messageId" => String?,
22
+ "attempt" => Integer,
23
+ "attributes" => Hash[String, telemetry_value],
24
+ "metrics" => Array[metric_sample]
25
+ }
26
+
27
+ type event_observer = ^(portable_event) -> void
28
+
29
+ type diagnostic_summary = {
30
+ "sampled" => Integer,
31
+ "truncated" => bool,
32
+ "oldestAgeMilliseconds" => Integer?
33
+ }
34
+
35
+ type actor_diagnostics = {
36
+ "actorType" => String,
37
+ "actorId" => String,
38
+ "incarnation" => String?,
39
+ "revision" => String?,
40
+ "adapter" => String,
41
+ "occurredAt" => String,
42
+ "limit" => Integer,
43
+ "mailbox" => diagnostic_summary,
44
+ "outbox" => diagnostic_summary,
45
+ "reminders" => diagnostic_summary,
46
+ "retries" => diagnostic_summary,
47
+ "recoveryFailures" => diagnostic_summary
48
+ }
49
+ end
@@ -9,6 +9,11 @@ end
9
9
  module ActiveSupport
10
10
  class MessageVerifier
11
11
  end
12
+
13
+ module Notifications
14
+ class Event
15
+ end
16
+ end
12
17
  end
13
18
 
14
19
  module ActionCable
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: solid_objects
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.16.0
4
+ version: 0.17.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lucas Carlson
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2026-09-23 00:00:00.000000000 Z
11
+ date: 2026-10-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: actioncable
@@ -362,6 +362,7 @@ files:
362
362
  - docs/implementation-plan.md
363
363
  - docs/local-testing.md
364
364
  - docs/migrating-existing-state.md
365
+ - docs/observability.md
365
366
  - docs/operations.md
366
367
  - docs/realtime.md
367
368
  - docs/reminders.md
@@ -425,6 +426,7 @@ files:
425
426
  - lib/solid_objects/dead_letter_manager.rb
426
427
  - lib/solid_objects/dead_letter_scope.rb
427
428
  - lib/solid_objects/dead_row.rb
429
+ - lib/solid_objects/diagnostics.rb
428
430
  - lib/solid_objects/doctor.rb
429
431
  - lib/solid_objects/dom_identity.rb
430
432
  - lib/solid_objects/effect_executor.rb
@@ -442,6 +444,7 @@ files:
442
444
  - lib/solid_objects/mailbox.rb
443
445
  - lib/solid_objects/message_pruner.rb
444
446
  - lib/solid_objects/message_reference.rb
447
+ - lib/solid_objects/observer_registry.rb
445
448
  - lib/solid_objects/operation_dispatcher.rb
446
449
  - lib/solid_objects/outcome.rb
447
450
  - lib/solid_objects/payload_broadcast.rb
@@ -464,6 +467,7 @@ files:
464
467
  - lib/solid_objects/sync_deadline.rb
465
468
  - lib/solid_objects/sync_diagnostics.rb
466
469
  - lib/solid_objects/synchronous_invocation.rb
470
+ - lib/solid_objects/telemetry.rb
467
471
  - lib/solid_objects/test_helper.rb
468
472
  - lib/solid_objects/transmission.rb
469
473
  - lib/solid_objects/turbo_stream_renderer.rb
@@ -527,6 +531,7 @@ files:
527
531
  - sig/generated/lib/solid_objects/dead_letter_manager.rbs
528
532
  - sig/generated/lib/solid_objects/dead_letter_scope.rbs
529
533
  - sig/generated/lib/solid_objects/dead_row.rbs
534
+ - sig/generated/lib/solid_objects/diagnostics.rbs
530
535
  - sig/generated/lib/solid_objects/doctor.rbs
531
536
  - sig/generated/lib/solid_objects/dom_identity.rbs
532
537
  - sig/generated/lib/solid_objects/effect_executor.rbs
@@ -544,6 +549,7 @@ files:
544
549
  - sig/generated/lib/solid_objects/mailbox.rbs
545
550
  - sig/generated/lib/solid_objects/message_pruner.rbs
546
551
  - sig/generated/lib/solid_objects/message_reference.rbs
552
+ - sig/generated/lib/solid_objects/observer_registry.rbs
547
553
  - sig/generated/lib/solid_objects/operation_dispatcher.rbs
548
554
  - sig/generated/lib/solid_objects/outcome.rbs
549
555
  - sig/generated/lib/solid_objects/payload_broadcast.rbs
@@ -566,6 +572,7 @@ files:
566
572
  - sig/generated/lib/solid_objects/sync_deadline.rbs
567
573
  - sig/generated/lib/solid_objects/sync_diagnostics.rbs
568
574
  - sig/generated/lib/solid_objects/synchronous_invocation.rbs
575
+ - sig/generated/lib/solid_objects/telemetry.rbs
569
576
  - sig/generated/lib/solid_objects/test_helper.rbs
570
577
  - sig/generated/lib/solid_objects/transmission.rbs
571
578
  - sig/generated/lib/solid_objects/turbo_stream_renderer.rbs
@@ -599,7 +606,9 @@ files:
599
606
  - sig/generated/models/solid_objects/redrive.rbs
600
607
  - sig/generated/models/solid_objects/reminder.rbs
601
608
  - sig/public/effect_payload.rbs
609
+ - sig/public/json_value.rbs
602
610
  - sig/public/reminder_payload.rbs
611
+ - sig/public/telemetry.rbs
603
612
  - sig/support/framework.rbs
604
613
  - web/assets/javascripts/application.js
605
614
  - web/assets/javascripts/charts.js