solid_objects 0.1.0 → 0.2.1

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 (60) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +22 -0
  3. data/README.md +160 -43
  4. data/app/models/solid_objects/claimed_message.rb +2 -0
  5. data/app/models/solid_objects/message.rb +6 -1
  6. data/benchmark/adoption_latency.rb +5 -0
  7. data/benchmark/support.rb +45 -15
  8. data/benchmark/{ask_latency.rb → sync_latency.rb} +1 -1
  9. data/db/migrate/20260805000000_create_solid_objects_tables.rb +15 -3
  10. data/docs/adr/0006-at-least-once-delivery.md +1 -1
  11. data/docs/adr/0008-actor-communication.md +4 -1
  12. data/docs/adr/0011-wake-up-strategy.md +13 -4
  13. data/docs/architecture.md +51 -20
  14. data/docs/authorization.md +85 -0
  15. data/docs/benchmarks.md +80 -10
  16. data/docs/correctness.md +28 -9
  17. data/docs/database-schema.md +15 -7
  18. data/docs/development.md +6 -5
  19. data/docs/fit.md +90 -0
  20. data/docs/implementation-plan.md +22 -16
  21. data/docs/migrating-existing-state.md +133 -0
  22. data/docs/operations.md +56 -4
  23. data/docs/research/solid_queue.md +2 -1
  24. data/docs/roadmap.md +9 -3
  25. data/docs/security.md +7 -2
  26. data/docs/state-migrations.md +4 -0
  27. data/lib/generators/solid_objects/templates/solid_objects.rb +17 -0
  28. data/lib/solid_objects/activation.rb +35 -19
  29. data/lib/solid_objects/activation_manager.rb +22 -6
  30. data/lib/solid_objects/actor.rb +16 -3
  31. data/lib/solid_objects/caller_process.rb +57 -0
  32. data/lib/solid_objects/client.rb +6 -37
  33. data/lib/solid_objects/configuration.rb +4 -4
  34. data/lib/solid_objects/doctor.rb +311 -0
  35. data/lib/solid_objects/engine.rb +1 -0
  36. data/lib/solid_objects/errors.rb +17 -1
  37. data/lib/solid_objects/executor.rb +42 -2
  38. data/lib/solid_objects/lease.rb +22 -10
  39. data/lib/solid_objects/message_reference.rb +1 -0
  40. data/lib/solid_objects/process_registry.rb +5 -1
  41. data/lib/solid_objects/reference.rb +8 -8
  42. data/lib/solid_objects/synchronous_invocation.rb +93 -0
  43. data/lib/solid_objects/version.rb +1 -1
  44. data/lib/solid_objects.rb +7 -0
  45. data/lib/tasks/solid_objects_tasks.rake +10 -0
  46. data/sig/generated/lib/solid_objects/activation.rbs +6 -0
  47. data/sig/generated/lib/solid_objects/activation_manager.rbs +6 -0
  48. data/sig/generated/lib/solid_objects/actor.rbs +9 -6
  49. data/sig/generated/lib/solid_objects/caller_process.rbs +32 -0
  50. data/sig/generated/lib/solid_objects/client.rbs +2 -8
  51. data/sig/generated/lib/solid_objects/configuration.rbs +2 -2
  52. data/sig/generated/lib/solid_objects/doctor.rbs +111 -0
  53. data/sig/generated/lib/solid_objects/errors.rbs +18 -1
  54. data/sig/generated/lib/solid_objects/executor.rbs +3 -0
  55. data/sig/generated/lib/solid_objects/lease.rbs +14 -10
  56. data/sig/generated/lib/solid_objects/reference.rbs +3 -3
  57. data/sig/generated/lib/solid_objects/synchronous_invocation.rbs +28 -0
  58. data/sig/generated/lib/solid_objects.rbs +3 -0
  59. data/sig/generated/models/solid_objects/message.rbs +3 -0
  60. metadata +15 -8
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: solid_objects
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lucas Carlson
8
- autorequire:
9
8
  bindir: exe
10
9
  cert_chain: []
11
- date: 2026-08-06 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: actioncable
@@ -252,7 +251,6 @@ description: 'The Cloudflare Durable Objects programming model for Rails: addres
252
251
  objects with durable state, ordered mailboxes, fenced activation, per-object alarms,
253
252
  transactional effects, and reactive ERB. It runs on MySQL, PostgreSQL, and SQLite
254
253
  without requiring Redis.'
255
- email:
256
254
  executables:
257
255
  - solid_objects
258
256
  extensions: []
@@ -280,7 +278,7 @@ files:
280
278
  - app/views/solid_objects/instances/index.html.erb
281
279
  - app/views/solid_objects/instances/show.html.erb
282
280
  - benchmark/activation_cache.rb
283
- - benchmark/ask_latency.rb
281
+ - benchmark/adoption_latency.rb
284
282
  - benchmark/claim.rb
285
283
  - benchmark/cold_actors.rb
286
284
  - benchmark/concurrent_actors.rb
@@ -289,6 +287,7 @@ files:
289
287
  - benchmark/processing.rb
290
288
  - benchmark/query_count.rb
291
289
  - benchmark/support.rb
290
+ - benchmark/sync_latency.rb
292
291
  - config/routes.rb
293
292
  - db/migrate/20260805000000_create_solid_objects_tables.rb
294
293
  - docs/adr/0001-postgresql-backend.md
@@ -305,11 +304,14 @@ files:
305
304
  - docs/adr/0012-not-active-jobs.md
306
305
  - docs/adr/0013-database-adapters.md
307
306
  - docs/architecture.md
307
+ - docs/authorization.md
308
308
  - docs/benchmarks.md
309
309
  - docs/correctness.md
310
310
  - docs/database-schema.md
311
311
  - docs/development.md
312
+ - docs/fit.md
312
313
  - docs/implementation-plan.md
314
+ - docs/migrating-existing-state.md
313
315
  - docs/operations.md
314
316
  - docs/realtime.md
315
317
  - docs/research/solid_queue.md
@@ -341,6 +343,7 @@ files:
341
343
  - lib/solid_objects/actor_snapshot.rb
342
344
  - lib/solid_objects/actor_view.rb
343
345
  - lib/solid_objects/broadcast_executor.rb
346
+ - lib/solid_objects/caller_process.rb
344
347
  - lib/solid_objects/cli.rb
345
348
  - lib/solid_objects/client.rb
346
349
  - lib/solid_objects/configuration.rb
@@ -350,6 +353,7 @@ files:
350
353
  - lib/solid_objects/database_adapters/postgresql.rb
351
354
  - lib/solid_objects/database_adapters/sqlite.rb
352
355
  - lib/solid_objects/dead_letter_manager.rb
356
+ - lib/solid_objects/doctor.rb
353
357
  - lib/solid_objects/dom_identity.rb
354
358
  - lib/solid_objects/effect_executor.rb
355
359
  - lib/solid_objects/effect_registry.rb
@@ -370,10 +374,12 @@ files:
370
374
  - lib/solid_objects/stream_name.rb
371
375
  - lib/solid_objects/stream_token.rb
372
376
  - lib/solid_objects/supervisor.rb
377
+ - lib/solid_objects/synchronous_invocation.rb
373
378
  - lib/solid_objects/turbo_stream_renderer.rb
374
379
  - lib/solid_objects/version.rb
375
380
  - lib/solid_objects/wake_up.rb
376
381
  - lib/solid_objects/worker.rb
382
+ - lib/tasks/solid_objects_tasks.rake
377
383
  - sig/generated/controllers/solid_objects/application_controller.rbs
378
384
  - sig/generated/controllers/solid_objects/dead_letters_controller.rbs
379
385
  - sig/generated/controllers/solid_objects/instances_controller.rbs
@@ -390,6 +396,7 @@ files:
390
396
  - sig/generated/lib/solid_objects/actor_snapshot.rbs
391
397
  - sig/generated/lib/solid_objects/actor_view.rbs
392
398
  - sig/generated/lib/solid_objects/broadcast_executor.rbs
399
+ - sig/generated/lib/solid_objects/caller_process.rbs
393
400
  - sig/generated/lib/solid_objects/cli.rbs
394
401
  - sig/generated/lib/solid_objects/client.rbs
395
402
  - sig/generated/lib/solid_objects/configuration.rbs
@@ -399,6 +406,7 @@ files:
399
406
  - sig/generated/lib/solid_objects/database_adapters/postgresql.rbs
400
407
  - sig/generated/lib/solid_objects/database_adapters/sqlite.rbs
401
408
  - sig/generated/lib/solid_objects/dead_letter_manager.rbs
409
+ - sig/generated/lib/solid_objects/doctor.rbs
402
410
  - sig/generated/lib/solid_objects/dom_identity.rbs
403
411
  - sig/generated/lib/solid_objects/effect_executor.rbs
404
412
  - sig/generated/lib/solid_objects/effect_registry.rbs
@@ -419,6 +427,7 @@ files:
419
427
  - sig/generated/lib/solid_objects/stream_name.rbs
420
428
  - sig/generated/lib/solid_objects/stream_token.rbs
421
429
  - sig/generated/lib/solid_objects/supervisor.rbs
430
+ - sig/generated/lib/solid_objects/synchronous_invocation.rbs
422
431
  - sig/generated/lib/solid_objects/turbo_stream_renderer.rbs
423
432
  - sig/generated/lib/solid_objects/version.rbs
424
433
  - sig/generated/lib/solid_objects/wake_up.rbs
@@ -445,7 +454,6 @@ metadata:
445
454
  homepage_uri: https://solidobjects.dev
446
455
  rubygems_mfa_required: 'true'
447
456
  source_code_uri: https://github.com/cardmagic/solid_objects
448
- post_install_message:
449
457
  rdoc_options: []
450
458
  require_paths:
451
459
  - lib
@@ -460,8 +468,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
460
468
  - !ruby/object:Gem::Version
461
469
  version: '0'
462
470
  requirements: []
463
- rubygems_version: 3.5.22
464
- signing_key:
471
+ rubygems_version: 4.0.10
465
472
  specification_version: 4
466
473
  summary: Cloudflare Durable Objects, ported to Rails
467
474
  test_files: []