message-passing-system
Skill17 starsChanged 9 months agoApache-2.0View on GitHub
Implement message passing concurrency models like actors and CSP channels.
In this repository98 other files it gives its agents.
- abstract-interpretation-engineSkill
- abstract-machineSkill
- acsl-annotation-assistantSkill
- actor-model-implementerSkill
- algebraic-effectsSkill
- alias-and-points-to-analysisSkill
- axiomatic-semanticsSkill
- bidirectional-type-checkingSkill
- bisimulation-checkerSkill
- capability-systemSkill
- closure-converterSkill
- common-subexpression-eliminatorSkill
- concurrency-verifierSkill
- constant-propagation-passSkill
- contextual-equivalenceSkill
- control-flow-analysisSkill
- coq-proof-assistantSkill
- cps-transformerSkill
- dafny-verifierSkill
- dataflow-analysis-frameworkSkill
- dead-code-eliminatorSkill
- defunctionalizationSkill
- denotational-semantics-builderSkill
- dependent-type-implementerSkill
- dsl-embeddingSkill
- effect-handlers-implementerSkill
- effect-systemSkill
- effect-type-systemSkill
- escape-analysisSkill
- existential-typesSkill
- ffi-designerSkill
- fuzzer-generatorSkill
- gadt-implementerSkill
- garbage-collector-implementerSkill
- graalvm-truffle-implementerSkill
- gradual-typing-implementerSkill
- higher-order-abstract-syntaxSkill
- hoare-logic-verifierSkill
- incremental-computationSkill
- information-flow-analyzerSkill
- inline-expanderSkill
- interprocedural-analysisSkill
- invariant-generatorSkill
- jit-compiler-builderSkill
- lambda-calculus-interpreterSkill
- language-server-protocolSkill
- lean-proverSkill
- lexer-generatorSkill
- linear-type-implementerSkill
- liveness-analysisSkill
- llvm-backend-generatorSkill
- lock-free-data-structureSkill
- loop-optimizerSkill
- loop-termination-proverSkill
- macro-expanderSkill
- memory-allocatorSkill
- mlir-dialect-designerSkill
- model-checkerSkill
- module-systemSkill
- monad-transformerSkill
- The first 60 shown.
The file
We split this skill into the rules it gives an agent
7 rules. About 0 are common, 7 are distinctive, and 0 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈7
Distinctive · estimate
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 25
Channel Implementation: Create typed message channels
- Distinctive: line 27
Select/Alt: Wait on multiple channels
- Distinctive: line 29
Message Ordering: Ensure message ordering guarantees
- Distinctive: line 43
Use buffered channels for throughput
- Distinctive: line 44
Use unbuffered for synchronization
- Distinctive: line 47
Consider message delivery guarantees
- Distinctive: line 85
When shared memory is simpler
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Message Passing System
Message passing is a concurrency model where processes/actors communicate by sending messages rather than sharing memory. It avoids many concurrency bugs by design.
When to Use This Skill
- Building distributed systems
- Avoiding shared-state concurrency bugs
- Implementing actor-based architectures
- Event-driven systems
- Microservices communication
What This Skill Does
- Channel Implementation: Create typed message channels
- Actor Model: Implement actors with mailboxes
- Select/Alt: Wait on multiple channels
- Backpressure: Handle slow consumers
- Message Ordering: Ensure message ordering guarantees
Key Concepts
| Concept | Description |
| Channel | Typed conduit for messages |
| Actor | Entity with mailbox and behavior |
| Select | Wait on multiple channels |
| Backpressure | Handle slow consumers |
| Rendezvous | Synchronous message passing |
Tips
- Use buffered channels for throughput
- Use unbuffered for synchronization
- Implement graceful shutdown
- Handle message ordering carefully
- Consider message delivery guarantees
Common Use Cases
- Actor-based systems (Akka, Orleans)
- Microservices communication
- Event streaming
- Pipeline processing
- GUI event handling
Related Skills
actor-model-implementer- Actor foundationslock-free-data-structure- Alternative modelsession-type-checker- Type-safe messagingconcurrency-verifier- Verify correctness
Canonical References
| Reference | Why It Matters |
| Hoare "Communicating Sequential Processes" (1978) | CSP foundation |
| Hewitt, Bishop, Steiger "A Universal Modular ACTOR Formalism for Artificial Intelligence" (IJCAI 1973) | Original actor paper |
| Pike "Newsqueak" and Go channels | Practical implementation |
Tradeoffs and Limitations
Approach Tradeoffs
| Approach | Pros | Cons |
| CSP channels | Simple, composable | Manual routing |
| Actors | Scalable, location transparent | More complex |
| Publish/Subscribe | Decoupled | No reply semantics |
When NOT to Use This Skill
- Single-threaded applications
- When shared memory is simpler
- High-frequency trading (latency)
Limitations
- Message ordering across actors
- Distributed failures
- Backpressure handling
Assessment Criteria
A high-quality implementation should have:
| Criterion | What to Look For |
| Correctness | Messages delivered |
| Fairness | No starvation |
| Performance | Scales with cores |
| Safety | No data races |
Quality Indicators
✅ Good: Type-safe, handles backpressure, graceful shutdown ⚠️ Warning: Works but can deadlock ❌ Bad: Message loss, data races
Research Tools & Artifacts
Real-world message passing systems:
| Tool | Why It Matters |
| Akka | Actor system for Scala/Java |
| Erlang/OTP | Original actor language |
| ** Orleans** | Microsoft actor framework |
| Go channels | CSP in Go |
| CAF | C++ actor framework |
Key Systems
- Erlang/OTP: Production message passing
- Akka: JVM actor system
Research Frontiers
Current message passing research:
| Direction | Key Papers | Challenge |
| Typed actors | "Typed Actors" (2018) | Type safety |
| Distribution | "Distributed Actors" | Scale |
| Failure | "Actor Failure" | Fault tolerance |
Hot Topics
- Wasm actors: WebAssembly actors
- Serverless: Functions as actors
Implementation Pitfalls
Common message passing bugs:
| Pitfall | Real Example | Prevention |
| Deadlock | Cyclic waits | Avoid cycles |
| Lost messages | Buffer overflow | Backpressure |
| Starvation | Unfair scheduling | Fair queues |
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
Reviews can't be read right now.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

