Skip to content

Add Falcon cluster service environment - #356

Open
samuel-williams-shopify wants to merge 13 commits into
mainfrom
add-falcon-cluster-env
Open

Add Falcon cluster service environment#356
samuel-williams-shopify wants to merge 13 commits into
mainfrom
add-falcon-cluster-env

Conversation

@samuel-williams-shopify

@samuel-williams-shopify samuel-williams-shopify commented Jun 26, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Add Falcon::Environment::Cluster and Falcon::Service::Cluster for workers that bind independently inside their execution context.
  • Describe each post-bind worker resource as an immutable Falcon::Service::Cluster::Listener.
  • Expose the listener name, scheme, supported wire-protocol names, bound endpoint, and every concrete socket address.
  • Invoke prepare_worker!(instance, listener:) after binding and before running the server.
  • Ensure each worker closes its bound endpoint.
  • Add a two-worker Unix-domain-socket cluster example using process and thread identity in each path.

The evaluator remains lazy configuration state; live bound sockets are passed explicitly through the worker lifecycle hook. Integrations can serialize the listener's scheme and protocol capabilities into their own discovery model without depending on Async::HTTP implementation constants.

Released dependencies

  • async-http v0.97.0
  • async-service-supervisor v0.18.0

Companion PRs

Testing

  • bundle exec sus test/falcon/service/cluster.rb test/falcon/environment/cluster.rb (4 tests, 30 assertions)
  • bundle exec rubocop
  • bundle exec bake decode:index:coverage lib (201/201 definitions)

Assisted-By: devx/379cb815-bd96-4979-b667-b34037489b71
Assisted-By: devx/379cb815-bd96-4979-b667-b34037489b71
Assisted-By: devx/56c5beec-347d-4712-9cc7-ea033e4d2a8a
Assisted-By: devx/56c5beec-347d-4712-9cc7-ea033e4d2a8a
Assisted-By: devx/56c5beec-347d-4712-9cc7-ea033e4d2a8a
Assisted-By: devx/56c5beec-347d-4712-9cc7-ea033e4d2a8a
Assisted-By: devx/56c5beec-347d-4712-9cc7-ea033e4d2a8a
Assisted-By: devx/56c5beec-347d-4712-9cc7-ea033e4d2a8a
Assisted-By: devx/56c5beec-347d-4712-9cc7-ea033e4d2a8a
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant