goakt
[Go]Distributed Actor/Grain framework for Golang with goodies
File Explorer
Download Latest Version (.zip)- bug_report.md
- feature_request.md
- performance_report.md
- build.yml
- codeql-analysis.yml
- commitlint.yml
- pr-title-checker.yml
- pr.yml
- release.yml
- scorecard.yml
- stale.yml
- CODEOWNERS
- FUNDING.yml
- pr-title-checker-config.json
- actor.go
- actor_path.go
- actor_path_test.go
- actor_system.go
- actor_system_test.go
- api.go
- api_test.go
- async_reply.go
- async_reply_test.go
- behavior_stack.go
- behavior_stack_test.go
- bounded_mailbox.go
- bounded_mailbox_test.go
- bounded_priority_mailbox.go
- bounded_priority_mailbox_test.go
- bounded_stable_priority_mailbox.go
- bounded_stable_priority_mailbox_test.go
- cluster_config.go
- cluster_config_test.go
- cluster_singleton.go
- cluster_singleton_option.go
- cluster_singleton_option_test.go
- cluster_singleton_test.go
- context.go
- context_pool.go
- context_pool_test.go
- context_test.go
- data_center_controller.go
- data_center_controller_test.go
- dead_letter.go
- dead_letter_test.go
- death_watch.go
- death_watch_test.go
- defaults.go
- dispatch_state.go
- dispatch_state_test.go
- dispatcher.go
- dispatcher_test.go
- fixtures_test.go
- func_actor.go
- func_actor_test.go
- grain.go
- grain_activation_barrier.go
- grain_activation_barrier_test.go
- grain_context.go
- grain_context_pool.go
- grain_context_pool_test.go
- grain_context_test.go
- grain_engine.go
- grain_engine_datacenter_test.go
- grain_engine_test.go
- grain_identity.go
- grain_identity_test.go
- grain_mailbox.go
- grain_mailbox_test.go
- grain_of.go
- grain_of_test.go
- grain_option.go
- grain_option_test.go
- grain_pid.go
- grain_pid_test.go
- grain_props.go
- grain_props_test.go
- grain_reply.go
- grain_reply_test.go
- grain_test.go
- grain_timer.go
- grain_timer_option.go
- grain_timer_option_test.go
- grain_timer_test.go
- mailbox.go
- messages.go
- messages_test.go
- metric.go
- no_sender.go
- non_blocking_bounded_mailbox.go
- non_blocking_bounded_mailbox_test.go
- option.go
- option_test.go
- passivation_manager.go
- passivation_manager_test.go
- pid.go
- pid_datacenter_test.go
- pid_option.go
- pid_option_test.go
- pid_state.go
- pid_state_test.go
- pid_test.go
- pid_tree.go
- pid_tree_test.go
- pipe_option.go
- pipe_option_test.go
- poison_pill_serializer.go
- poison_pill_serializer_test.go
- pools.go
- pools_test.go
- priority_intake.go
- priority_intake_test.go
- ready_queue.go
- ready_queue_test.go
- receive_context.go
- receive_context_test.go
- reentrancy.go
- reentrancy_test.go
- reflection.go
- reflection_test.go
- reliable_delivery_cluster_test.go
- reliable_delivery_companion.go
- reliable_delivery_companion_test.go
- reliable_delivery_config.go
- reliable_delivery_config_test.go
- reliable_delivery_consumer_controller.go
- reliable_delivery_consumer_controller_test.go
- reliable_delivery_durable_queue.go
- reliable_delivery_durable_queue_test.go
- reliable_delivery_durable_work_queue.go
- reliable_delivery_durable_work_queue_test.go
- reliable_delivery_options.go
- reliable_delivery_options_test.go
- reliable_delivery_producer_controller.go
- reliable_delivery_producer_controller_test.go
- reliable_delivery_protocol.go
- reliable_delivery_protocol_test.go
- reliable_delivery_relocation_test.go
- reliable_delivery_remoting_test.go
- reliable_delivery_work_pulling_controller.go
- reliable_delivery_work_pulling_controller_test.go
- relocation_handoff.go
- relocation_handoff_test.go
- relocation_worker.go
- relocation_worker_test.go
- relocator.go
- relocator_test.go
- remote_hold_registry.go
- remote_hold_registry_test.go
- remote_server.go
- remote_server_test.go
- remote_watch_registry.go
- remote_watch_registry_test.go
- replicator.go
- replicator_test.go
- reserved.go
- root_guardian.go
- root_guardian_test.go
- router.go
- router_option.go
- router_option_test.go
- router_test.go
- routing_strategy.go
- schedule_option.go
- schedule_option_test.go
- scheduler.go
- scheduler_test.go
- shutdown_hook.go
- spawn.go
- spawn_option.go
- spawn_option_test.go
- spawn_test.go
- stash.go
- stash_test.go
- supervision.go
- supervision_signal.go
- supervision_signal_test.go
- supervision_test.go
- system_eviction.go
- system_eviction_test.go
- system_guardian.go
- system_guardian_test.go
- terminated_serializer.go
- terminated_serializer_test.go
- topic_actor.go
- topic_actor_test.go
- unbounded_fair_mailbox.go
- unbounded_fair_mailbox_test.go
- unbounded_mailbox.go
- unbounded_mailbox_test.go
- unbounded_priority_mailbox.go
- unbounded_priority_mailbox_test.go
- unbounded_segmented_mailbox.go
- unbounded_segmented_mailbox_test.go
- unbounded_stable_priority_mailbox.go
- unbounded_stable_priority_mailbox_test.go
- user_guardian.go
- user_guardian_test.go
- worker.go
- doc.md
- latency_test.go
- mailbox_test.go
- memory_test.go
- pairwise_test.go
- processing_test.go
- remote_tell_throughput_test.go
- scale_test.go
- breaker.go
- breaker_test.go
- bucket.go
- bucket_test.go
- errors.go
- errors_test.go
- metrics.go
- options.go
- options_test.go
- state.go
- state_test.go
- unreleased.md
- v3.12.0.md
- v3.12.1.md
- v3.13.0.md
- v3.14.0.md
- v4.0.0.md
- v4.1.0.md
- v4.1.1.md
- v4.2.0.md
- v4.2.1.md
- v4.2.10.md
- v4.2.11.md
- v4.2.12.md
- v4.2.13.md
- v4.2.2.md
- v4.2.3.md
- v4.2.4.md
- v4.2.5.md
- v4.2.6.md
- v4.2.7.md
- v4.2.8.md
- v4.2.9.md
- v4.3.0.md
- v4.3.1.md
- v4.4.0.md
- v4.4.1.md
- v4.4.2.md
- v4.4.3.md
- v4.5.0.md
- v4.5.1.md
- v4.5.2.md
- balancer.go
- client.go
- client_test.go
- least_load.go
- least_load_test.go
- node.go
- node_test.go
- option.go
- option_test.go
- random.go
- round_robin.go
- round_robin_test.go
- benchmark_test.go
- config.go
- config_test.go
- consistency.go
- crdt.go
- flag.go
- flag_test.go
- gcounter.go
- gcounter_test.go
- key.go
- key_test.go
- lww_register.go
- lww_register_test.go
- messages.go
- messages_test.go
- mv_register.go
- mv_register_test.go
- or_map.go
- or_map_test.go
- or_set.go
- or_set_test.go
- pncounter.go
- pncounter_test.go
- config.go
- config_test.go
- control_plane.go
- control_plane_test.go
- config.go
- config_test.go
- control_plane.go
- control_plane_test.go
- config.go
- config_test.go
- control_plane.go
- data_center.go
- fixtures_test.go
- ARCHITECTURE.md
- CRDTs.md
- DISPATCHER_POOL_DESIGN.md
- REACTIVE_STREAMS.md
- REENTRANCY.md
- RELIABLE_DELIVERY.md
- REMOTING_DESIGN.md
- config.go
- config_test.go
- discovery.go
- discovery_test.go
- README.md
- config.go
- config_test.go
- discovery.go
- discovery_test.go
- README.md
- config.go
- config_test.go
- discovery.go
- discovery_test.go
- README.md
- config.go
- config_test.go
- discovery.go
- discovery_test.go
- README.md
- config.go
- config_test.go
- discovery.go
- discovery_test.go
- README.md
- config.go
- config_test.go
- discovery.go
- discovery_test.go
- option.go
- option_test.go
- README.md
- broadcast.go
- broadcast_test.go
- config.go
- config_test.go
- discovery.go
- discovery_test.go
- doc.go
- listen_udp_default.go
- listen_udp_multicast.go
- listen_udp_multicast_default.go
- listen_udp_reuseport.go
- listen_udp_windows.go
- README.md
- sockopt_unix.go
- sockopt_windows.go
- config.go
- config_test.go
- discovery.go
- discovery_test.go
- README.md
- errors.go
- node.go
- node_test.go
- provider.go
- provider_types.go
- actor-model.mdx
- actor-system.mdx
- behaviors.mdx
- death-watch.mdx
- first-actor.mdx
- lifecycle.mdx
- location-transparency.mdx
- mailboxes.mdx
- messaging.mdx
- passivation.mdx
- pid.mdx
- pipeto.mdx
- reentrancy.mdx
- relocation.mdx
- routers.mdx
- scheduling.mdx
- singletons.mdx
- stashing.mdx
- supervision.mdx
- testkit.mdx
- client.mdx
- coordinated-shutdown.mdx
- distributed-data.mdx
- event-streams.mdx
- extensions-and-dependencies.mdx
- observability.mdx
- pubsub.mdx
- remoting.mdx
- serialization.mdx
- streams.mdx
- code-map.mdx
- context-pools.mdx
- design-decisions.mdx
- dispatcher-pool.mdx
- overview.mdx
- crdt-delta-flow.png
- goakt-icon.png
- goakt-logo-dark.svg
- goakt-logo-light.svg
- goakt-messaging-distributed-go.jpg
- multi-datacenter-architecture.png
- pubsub-cluster-mode.png
- pubsub-standalone-mode.png
- point-to-point.mdx
- work-pulling.mdx
- multi-datacenter.mdx
- overview.mdx
- partition-hashing.mdx
- placement.mdx
- service-discovery.mdx
- development-setup.mdx
- extending.mdx
- overview.mdx
- testing-strategy.mdx
- installation.mdx
- migration-v3.mdx
- overview.mdx
- pipeto.mdx
- reentrancy.mdx
- timers.mdx
- ego.mdx
- glossary.mdx
- interfaces.mdx
- v400-changes.mdx
- .mintignore
- docs.json
- index.mdx
- load-styles.js
- style.css
- errors.go
- errors_test.go
- benchmark_test.go
- eventstream.go
- eventstream_test.go
- message.go
- subscriber.go
- dependency.go
- extension.go
- hasher.go
- address.go
- address_test.go
- errors.go
- chain.go
- chain_test.go
- chunk.go
- chunk_test.go
- boltdb_store.go
- boltdb_store_test.go
- cluster.go
- cluster_test.go
- codec.go
- codec_test.go
- config.go
- config_test.go
- discovery.go
- discovery_test.go
- errors.go
- errors_test.go
- event.go
- event_test.go
- fixtures_test.go
- hasher.go
- hasher_test.go
- logwriter.go
- logwriter_test.go
- memory_store.go
- memory_store_test.go
- peer.go
- peer_test.go
- store.go
- codec.go
- codec_test.go
- async.go
- async_serializer.go
- async_serializer_test.go
- commands.go
- delivery.go
- delivery_serializer.go
- delivery_serializer_test.go
- delivery_test.go
- controller.go
- controller_test.go
- crdt_codec.go
- crdt_codec_test.go
- crdt_serializer.go
- crdt_serializer_test.go
- snapshot.go
- snapshot_test.go
- duration.go
- duration_test.go
- future.go
- future_test.go
- separator.go
- actor.pb.go
- cluster.pb.go
- crdt.pb.go
- datacenter.pb.go
- delivery.pb.go
- dependency.pb.go
- grain.pb.go
- handshake.pb.go
- metric.pb.go
- nats.pb.go
- network.pb.go
- passivation.pb.go
- peers.pb.go
- reentrancy.pb.go
- remoting.pb.go
- supervision.pb.go
- nocopy.go
- addr.go
- addr_test.go
- transport.go
- transport_config.go
- transport_test.go
- actor_metric.go
- actor_metric_test.go
- actor_system_metric.go
- actor_system_metric_test.go
- provider.go
- provider_test.go
- relocation_metric.go
- relocation_metric_test.go
- replicator_metric.go
- replicator_metric_test.go
- benchmark_test.go
- buffered_conn.go
- buffered_conn_test.go
- chunk.go
- chunk_test.go
- client.go
- client_test.go
- compress.go
- compress_brotli.go
- compress_brotli_test.go
- compress_gzip.go
- compress_gzip_test.go
- compress_test.go
- compress_zstd.go
- compress_zstd_test.go
- duplex.go
- duplex_chunk.go
- duplex_chunk_test.go
- duplex_credit.go
- duplex_credit_test.go
- duplex_dispatch.go
- duplex_dispatch_test.go
- duplex_lease.go
- duplex_lease_test.go
- duplex_open.go
- duplex_open_test.go
- duplex_table.go
- duplex_table_test.go
- duplex_test.go
- dynaport.go
- dynaport_test.go
- envelope.go
- envelope_test.go
- frame.go
- frame_pool.go
- frame_pool_test.go
- frame_test.go
- handshake.go
- handshake_test.go
- helper.go
- helper_test.go
- listen.go
- listen_config.go
- listen_darwin.go
- listen_linux.go
- listen_windows.go
- metadata.go
- metadata_test.go
- pending.go
- pending_test.go
- prepend_conn.go
- prepend_conn_test.go
- proto_serializer.go
- proto_serializer_test.go
- reassembly.go
- reassembly_test.go
- remoting_server.go
- remoting_server_test.go
- sentinel.go
- table.go
- table_test.go
- tcp_server.go
- tcp_server_test.go
- transport.go
- transport_test.go
- worker_pool.go
- worker_pool_test.go
- pause.go
- table.go
- table_test.go
- pointer.go
- pointer_test.go
- queue.go
- queue_test.go
- quorum.go
- client.go
- client_test.go
- coalescer.go
- coalescer_test.go
- config.go
- config_test.go
- fixtures_test.go
- peer.go
- peer_test.go
- protocol_cache.go
- protocol_cache_test.go
- routing.go
- routing_test.go
- send.go
- send_test.go
- serializer_dispatch.go
- serializer_dispatch_test.go
- tell_pump.go
- tell_pump_test.go
- size.go
- filter.go
- filter_test.go
- convert.go
- convert_test.go
- parse_int32.go
- parse_int32_test.go
- ticker.go
- ticker_test.go
- timer.go
- global.go
- global_test.go
- registry.go
- registry_test.go
- types.go
- types_test.go
- boolean.go
- boolean_test.go
- conditional.go
- conditional_test.go
- empty_string.go
- empty_string_test.go
- id.go
- id_test.go
- pattern.go
- pattern_test.go
- tcp_address.go
- tcp_address_test.go
- validation.go
- validation_test.go
- list.go
- list_test.go
- map.go
- map_test.go
- ttlmap.go
- ttlmap_test.go
- discard.go
- discard_test.go
- level.go
- level_test.go
- log_test.go
- logger.go
- slog.go
- slog_test.go
- zap.go
- zap_test.go
- memory.go
- memory_bsd.go
- memory_darwin.go
- memory_darwin_test.go
- memory_linux.go
- memory_test.go
- memory_unsupported.go
- memory_unsupported_test.go
- memory_windows.go
- cluster.go
- provider.go
- dependency.go
- extension.go
- hasher.go
- client.go
- strategy.go
- strategy_test.go
- main.go
- README.md
- main.go
- main.go
- README.md
- main.go
- README.md
- main.go
- README.md
- main.go
- main.go
- main.go
- main.go
- main.go
- main.go
- main.go
- README.md
- main.go
- README.md
- k8s.yaml
- kind-config.yaml
- demo.sh
- Dockerfile
- main.go
- Makefile
- README.md
- recorder.go
- server.go
- worker.go
- main.go
- README.md
- main.go
- README.md
- main.go
- main.go
- README.md
- main.go
- README.md
- main.go
- README.md
- main.go
- README.md
- main.go
- README.md
- main.go
- main.go
- main.go
- main.go
- main.go
- main.go
- main.go
- main.go
- main.go
- main.go
- main.go
- main.go
- README.md
- main.go
- README.md
- actor.proto
- cluster.proto
- crdt.proto
- datacenter.proto
- delivery.proto
- dependency.proto
- grain.proto
- handshake.proto
- metric.proto
- nats.proto
- network.proto
- passivation.proto
- peers.proto
- reentrancy.proto
- remoting.proto
- supervision.proto
- test.proto
- reentrancy.go
- reentrancy_test.go
- actor_state.go
- actor_state_test.go
- cbor_serializer.go
- cbor_serializer_test.go
- compression.go
- config.go
- config_test.go
- context_propagator.go
- fixtures_test.go
- grain_request.go
- grain_request_test.go
- json_serializer.go
- json_serializer_test.go
- option.go
- option_test.go
- peer.go
- peer_test.go
- proto_serializer.go
- proto_serializer_test.go
- protocol_pin.go
- protocol_pin_test.go
- reliable_delivery.go
- reliable_delivery_test.go
- serializer.go
- spawn_request.go
- spawn_request_test.go
- config.go
- config_test.go
- errors.go
- errors_test.go
- fixtures_test.go
- flow.go
- flow_test.go
- graph.go
- graph_builder.go
- graph_builder_test.go
- graph_internal_test.go
- graph_test.go
- handle.go
- handle_test.go
- junctions_test.go
- materializer.go
- materializer_test.go
- metrics.go
- metrics_test.go
- overflow.go
- overflow_test.go
- pipeline.go
- pipeline_test.go
- protocol.go
- queue.go
- queue_test.go
- remote.go
- remote_protocol.go
- remote_test.go
- sink.go
- sink_test.go
- source.go
- source_test.go
- stage_balance.go
- stage_broadcast.go
- stage_broadcast_test.go
- stage_concat.go
- stage_coordinator.go
- stage_flatmap_stream.go
- stage_flow.go
- stage_flow_test.go
- stage_merge_latest.go
- stage_merge_select.go
- stage_merge_sequence.go
- stage_merge_sequence_test.go
- stage_parallel.go
- stage_parallel_test.go
- stage_partition.go
- stage_sink.go
- stage_sink_ref.go
- stage_sink_test.go
- stage_source.go
- stage_source_ref.go
- stage_source_test.go
- stage_subflow.go
- stage_zipn.go
- stream.go
- subflow.go
- subflow_test.go
- tracer.go
- supervisor.go
- supervisor_test.go
- auto.conf
- auto.csr
- auto.key
- auto.pem
- auto_no_ip_san.conf
- auto_no_ip_san.csr
- auto_no_ip_san.key
- auto_no_ip_san.pem
- ca.cert
- ca.key
- client-auth-ca.key
- client-auth-ca.pem
- client-auth.conf
- client-auth.key
- client-auth.pem
- client-auth.req
- test.pb.go
- grain_of.go
- grain_of_test.go
- grain_probe.go
- grain_probe_test.go
- leader_test.go
- multi_nodes.go
- option.go
- probe.go
- probe_test.go
- testkit.go
- testkit_test.go
- testnode.go
- testnode_test.go
- info.go
- .gitattributes
- .gitignore
- .golangci.yml
- .mockery.yml
- AGENTS.md
- buf.gen.yaml
- buf.yaml
- CHANGELOG.md
- CLA.md
- CLAUDE.md
- CODE_OF_CONDUCT.md
- codecov.yml
- CONTRIBUTING.md
- Dockerfile.tools
- go.mod
- go.sum
- LICENSE
- Makefile
- README.md
- renovate.json5
- SECURITY.md
# Installation Guide
1. Get the code
git clone https://github.com/Tochemey/goakt
Downloads the entire project code from GitHub to your computer.
cd goakt
Moves into the project folder you just downloaded.
2. Docker
Easy RecommendedPrerequisites
- Git Needed to download the project code from GitHub.
- Docker Desktop Needed to build and run containers. Install it and keep it running in the background.
docker build -f Dockerfile.tools -t goakt .
Builds a runnable image based on the Dockerfile.
docker run -p 8080:80 goakt
Runs the built image as an actual container.
Run docker compose ps to check the containers are Up. If the README mentions a port, open http://localhost:PORT in your browser.
3. Go
MediumPrerequisites
go build ./...
Compiles the Go program into an executable.
go run .
Runs the Go program directly without a separate build step.
If the build finishes without errors, it worked. If you used go run ., check the terminal output.
4. Make
MediumPrerequisites
- Git Needed to download the project code from GitHub.
- Make Usually pre-installed on Linux/macOS. On Windows, install separately (e.g. via MSYS2 or WSL).
make
Compiles the code based on the generated build configuration to produce an executable.
If it finishes without errors, it worked. Try running the generated executable directly.
// repository documentation
Was this content helpful?
(0 ratings)
