solid_objects 0.2.0 → 0.3.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 (76) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +23 -0
  3. data/README.md +223 -15
  4. data/benchmark/adoption_latency.rb +5 -0
  5. data/benchmark/support.rb +35 -0
  6. data/docs/architecture.md +62 -15
  7. data/docs/authorization.md +98 -0
  8. data/docs/benchmarks.md +75 -1
  9. data/docs/correctness.md +19 -1
  10. data/docs/database-schema.md +5 -0
  11. data/docs/development.md +45 -4
  12. data/docs/fit.md +98 -0
  13. data/docs/migrating-existing-state.md +140 -0
  14. data/docs/operations.md +94 -4
  15. data/docs/roadmap.md +12 -3
  16. data/docs/security.md +28 -3
  17. data/docs/state-migrations.md +6 -0
  18. data/lib/generators/solid_objects/templates/solid_objects.rb +45 -0
  19. data/lib/solid_objects/activation.rb +33 -4
  20. data/lib/solid_objects/actor.rb +47 -6
  21. data/lib/solid_objects/actor_definition.rb +2 -0
  22. data/lib/solid_objects/actor_snapshot.rb +10 -4
  23. data/lib/solid_objects/application_write_guard.rb +24 -0
  24. data/lib/solid_objects/caller_process.rb +28 -0
  25. data/lib/solid_objects/cli.rb +44 -5
  26. data/lib/solid_objects/client.rb +98 -5
  27. data/lib/solid_objects/commit_action_registry.rb +42 -0
  28. data/lib/solid_objects/configuration.rb +27 -1
  29. data/lib/solid_objects/database_adapter.rb +28 -1
  30. data/lib/solid_objects/database_adapters/mysql.rb +46 -0
  31. data/lib/solid_objects/database_adapters/postgresql.rb +29 -0
  32. data/lib/solid_objects/database_adapters/sqlite.rb +28 -0
  33. data/lib/solid_objects/doctor.rb +311 -0
  34. data/lib/solid_objects/errors.rb +144 -0
  35. data/lib/solid_objects/executor.rb +64 -4
  36. data/lib/solid_objects/instance_pruner.rb +97 -0
  37. data/lib/solid_objects/message_pruner.rb +97 -0
  38. data/lib/solid_objects/message_reference.rb +9 -0
  39. data/lib/solid_objects/process_pruner.rb +49 -0
  40. data/lib/solid_objects/reference.rb +5 -0
  41. data/lib/solid_objects/state_snapshot.rb +41 -0
  42. data/lib/solid_objects/sync_deadline.rb +57 -0
  43. data/lib/solid_objects/sync_diagnostics.rb +133 -0
  44. data/lib/solid_objects/synchronous_invocation.rb +26 -7
  45. data/lib/solid_objects/test_helper.rb +78 -0
  46. data/lib/solid_objects/version.rb +1 -1
  47. data/lib/solid_objects/worker.rb +1 -1
  48. data/lib/solid_objects.rb +34 -0
  49. data/lib/tasks/solid_objects_tasks.rake +10 -0
  50. data/sig/generated/lib/solid_objects/activation.rbs +3 -0
  51. data/sig/generated/lib/solid_objects/actor.rbs +26 -0
  52. data/sig/generated/lib/solid_objects/application_write_guard.rbs +8 -0
  53. data/sig/generated/lib/solid_objects/caller_process.rbs +11 -0
  54. data/sig/generated/lib/solid_objects/cli.rbs +11 -2
  55. data/sig/generated/lib/solid_objects/client.rbs +15 -0
  56. data/sig/generated/lib/solid_objects/commit_action_registry.rbs +43 -0
  57. data/sig/generated/lib/solid_objects/configuration.rbs +27 -7
  58. data/sig/generated/lib/solid_objects/database_adapter.rbs +9 -0
  59. data/sig/generated/lib/solid_objects/database_adapters/mysql.rbs +8 -0
  60. data/sig/generated/lib/solid_objects/database_adapters/postgresql.rbs +8 -0
  61. data/sig/generated/lib/solid_objects/database_adapters/sqlite.rbs +8 -0
  62. data/sig/generated/lib/solid_objects/doctor.rbs +111 -0
  63. data/sig/generated/lib/solid_objects/errors.rbs +118 -0
  64. data/sig/generated/lib/solid_objects/executor.rbs +12 -0
  65. data/sig/generated/lib/solid_objects/instance_pruner.rbs +36 -0
  66. data/sig/generated/lib/solid_objects/message_pruner.rbs +42 -0
  67. data/sig/generated/lib/solid_objects/message_reference.rbs +3 -0
  68. data/sig/generated/lib/solid_objects/process_pruner.rbs +27 -0
  69. data/sig/generated/lib/solid_objects/reference.rbs +3 -0
  70. data/sig/generated/lib/solid_objects/state_snapshot.rbs +30 -0
  71. data/sig/generated/lib/solid_objects/sync_deadline.rbs +31 -0
  72. data/sig/generated/lib/solid_objects/sync_diagnostics.rbs +34 -0
  73. data/sig/generated/lib/solid_objects/synchronous_invocation.rbs +3 -0
  74. data/sig/generated/lib/solid_objects/test_helper.rbs +25 -0
  75. data/sig/generated/lib/solid_objects.rbs +12 -0
  76. metadata +26 -1
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: solid_objects
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lucas Carlson
@@ -278,6 +278,7 @@ files:
278
278
  - app/views/solid_objects/instances/index.html.erb
279
279
  - app/views/solid_objects/instances/show.html.erb
280
280
  - benchmark/activation_cache.rb
281
+ - benchmark/adoption_latency.rb
281
282
  - benchmark/claim.rb
282
283
  - benchmark/cold_actors.rb
283
284
  - benchmark/concurrent_actors.rb
@@ -303,11 +304,14 @@ files:
303
304
  - docs/adr/0012-not-active-jobs.md
304
305
  - docs/adr/0013-database-adapters.md
305
306
  - docs/architecture.md
307
+ - docs/authorization.md
306
308
  - docs/benchmarks.md
307
309
  - docs/correctness.md
308
310
  - docs/database-schema.md
309
311
  - docs/development.md
312
+ - docs/fit.md
310
313
  - docs/implementation-plan.md
314
+ - docs/migrating-existing-state.md
311
315
  - docs/operations.md
312
316
  - docs/realtime.md
313
317
  - docs/research/solid_queue.md
@@ -338,10 +342,12 @@ files:
338
342
  - lib/solid_objects/actor_registry.rb
339
343
  - lib/solid_objects/actor_snapshot.rb
340
344
  - lib/solid_objects/actor_view.rb
345
+ - lib/solid_objects/application_write_guard.rb
341
346
  - lib/solid_objects/broadcast_executor.rb
342
347
  - lib/solid_objects/caller_process.rb
343
348
  - lib/solid_objects/cli.rb
344
349
  - lib/solid_objects/client.rb
350
+ - lib/solid_objects/commit_action_registry.rb
345
351
  - lib/solid_objects/configuration.rb
346
352
  - lib/solid_objects/context.rb
347
353
  - lib/solid_objects/database_adapter.rb
@@ -349,31 +355,40 @@ files:
349
355
  - lib/solid_objects/database_adapters/postgresql.rb
350
356
  - lib/solid_objects/database_adapters/sqlite.rb
351
357
  - lib/solid_objects/dead_letter_manager.rb
358
+ - lib/solid_objects/doctor.rb
352
359
  - lib/solid_objects/dom_identity.rb
353
360
  - lib/solid_objects/effect_executor.rb
354
361
  - lib/solid_objects/effect_registry.rb
355
362
  - lib/solid_objects/engine.rb
356
363
  - lib/solid_objects/errors.rb
357
364
  - lib/solid_objects/executor.rb
365
+ - lib/solid_objects/instance_pruner.rb
358
366
  - lib/solid_objects/instrumentation.rb
359
367
  - lib/solid_objects/lease.rb
360
368
  - lib/solid_objects/lease_renewer.rb
361
369
  - lib/solid_objects/log_subscriber.rb
362
370
  - lib/solid_objects/mailbox.rb
371
+ - lib/solid_objects/message_pruner.rb
363
372
  - lib/solid_objects/message_reference.rb
373
+ - lib/solid_objects/process_pruner.rb
364
374
  - lib/solid_objects/process_registry.rb
365
375
  - lib/solid_objects/reference.rb
366
376
  - lib/solid_objects/reminder_scheduler.rb
367
377
  - lib/solid_objects/serialization.rb
368
378
  - lib/solid_objects/state.rb
379
+ - lib/solid_objects/state_snapshot.rb
369
380
  - lib/solid_objects/stream_name.rb
370
381
  - lib/solid_objects/stream_token.rb
371
382
  - lib/solid_objects/supervisor.rb
383
+ - lib/solid_objects/sync_deadline.rb
384
+ - lib/solid_objects/sync_diagnostics.rb
372
385
  - lib/solid_objects/synchronous_invocation.rb
386
+ - lib/solid_objects/test_helper.rb
373
387
  - lib/solid_objects/turbo_stream_renderer.rb
374
388
  - lib/solid_objects/version.rb
375
389
  - lib/solid_objects/wake_up.rb
376
390
  - lib/solid_objects/worker.rb
391
+ - lib/tasks/solid_objects_tasks.rake
377
392
  - sig/generated/controllers/solid_objects/application_controller.rbs
378
393
  - sig/generated/controllers/solid_objects/dead_letters_controller.rbs
379
394
  - sig/generated/controllers/solid_objects/instances_controller.rbs
@@ -389,10 +404,12 @@ files:
389
404
  - sig/generated/lib/solid_objects/actor_registry.rbs
390
405
  - sig/generated/lib/solid_objects/actor_snapshot.rbs
391
406
  - sig/generated/lib/solid_objects/actor_view.rbs
407
+ - sig/generated/lib/solid_objects/application_write_guard.rbs
392
408
  - sig/generated/lib/solid_objects/broadcast_executor.rbs
393
409
  - sig/generated/lib/solid_objects/caller_process.rbs
394
410
  - sig/generated/lib/solid_objects/cli.rbs
395
411
  - sig/generated/lib/solid_objects/client.rbs
412
+ - sig/generated/lib/solid_objects/commit_action_registry.rbs
396
413
  - sig/generated/lib/solid_objects/configuration.rbs
397
414
  - sig/generated/lib/solid_objects/context.rbs
398
415
  - sig/generated/lib/solid_objects/database_adapter.rbs
@@ -400,27 +417,35 @@ files:
400
417
  - sig/generated/lib/solid_objects/database_adapters/postgresql.rbs
401
418
  - sig/generated/lib/solid_objects/database_adapters/sqlite.rbs
402
419
  - sig/generated/lib/solid_objects/dead_letter_manager.rbs
420
+ - sig/generated/lib/solid_objects/doctor.rbs
403
421
  - sig/generated/lib/solid_objects/dom_identity.rbs
404
422
  - sig/generated/lib/solid_objects/effect_executor.rbs
405
423
  - sig/generated/lib/solid_objects/effect_registry.rbs
406
424
  - sig/generated/lib/solid_objects/engine.rbs
407
425
  - sig/generated/lib/solid_objects/errors.rbs
408
426
  - sig/generated/lib/solid_objects/executor.rbs
427
+ - sig/generated/lib/solid_objects/instance_pruner.rbs
409
428
  - sig/generated/lib/solid_objects/instrumentation.rbs
410
429
  - sig/generated/lib/solid_objects/lease.rbs
411
430
  - sig/generated/lib/solid_objects/lease_renewer.rbs
412
431
  - sig/generated/lib/solid_objects/log_subscriber.rbs
413
432
  - sig/generated/lib/solid_objects/mailbox.rbs
433
+ - sig/generated/lib/solid_objects/message_pruner.rbs
414
434
  - sig/generated/lib/solid_objects/message_reference.rbs
435
+ - sig/generated/lib/solid_objects/process_pruner.rbs
415
436
  - sig/generated/lib/solid_objects/process_registry.rbs
416
437
  - sig/generated/lib/solid_objects/reference.rbs
417
438
  - sig/generated/lib/solid_objects/reminder_scheduler.rbs
418
439
  - sig/generated/lib/solid_objects/serialization.rbs
419
440
  - sig/generated/lib/solid_objects/state.rbs
441
+ - sig/generated/lib/solid_objects/state_snapshot.rbs
420
442
  - sig/generated/lib/solid_objects/stream_name.rbs
421
443
  - sig/generated/lib/solid_objects/stream_token.rbs
422
444
  - sig/generated/lib/solid_objects/supervisor.rbs
445
+ - sig/generated/lib/solid_objects/sync_deadline.rbs
446
+ - sig/generated/lib/solid_objects/sync_diagnostics.rbs
423
447
  - sig/generated/lib/solid_objects/synchronous_invocation.rbs
448
+ - sig/generated/lib/solid_objects/test_helper.rbs
424
449
  - sig/generated/lib/solid_objects/turbo_stream_renderer.rbs
425
450
  - sig/generated/lib/solid_objects/version.rbs
426
451
  - sig/generated/lib/solid_objects/wake_up.rbs