I hereby claim:
- I am arobson on github.
- I am arob (https://keybase.io/arob) on keybase.
- I have a public key ASCE83LKQpAo2zdVrOWtZbmaqOXOo9S2cqUXWRVdyDTgiwo
To claim this, I am signing this object:
Subscribers subscribe to topics. | |
A topic is expressed as a period delimited namespace: "a.b.c.d" | |
A topic subscription may be an exact match or use wild card characters: | |
* - match 1 namespace segment at a specific location | |
# - match any number of namespace segments | |
When a message comes in, it will always have a fully specified topic. | |
The list of subscriptions with topics that would match the message's topic is the desired outcome. |
I hereby claim:
To claim this, I am signing this object:
AWSTemplateFormatVersion: 2010-09-09 | |
Description: AWS CloudFormation Template for npm enterprise instance. | |
Parameters: | |
SSHKeyName: | |
Description: Name of existing EC2 KeyPair to enable SSH access. | |
Type: 'AWS::EC2::KeyPair::KeyName' | |
ConstraintDescription: must be the name of an existing EC2 KeyPair. | |
SSHLocation: | |
Description: The IP address range that can be used to SSH to the EC2 instances | |
Type: String |
# ----------------------------------------------------------------------------- | |
# 1. replace `your-domain.com` with your public-facing domain | |
# 2. replace `1.1.1.1` with your primary server's IP | |
# 3. replace worker_processes with 1 if host only has 1 core | |
# 4. add `fs.file-max = 4096` to `/etc/sysctl.conf` | |
# 5. copy your SSL pem file to `/etc/nginx/wildcard.pem` | |
# ----------------------------------------------------------------------------- | |
user root; | |
worker_processes 2; |
- apiVersion: v1 | |
kind: Service | |
metadata: | |
namespace: infra | |
name: es | |
labels: | |
app: es | |
name: es | |
namespace: infra | |
spec: |
name = "elasticsearch.infra" | |
image = "elasticsearch:5.5.1-alpine" | |
stateful = true | |
[scale] | |
containers = 1 | |
ram = "> 256 Mi < 1024 Mi" | |
cpu = "> 1% < 100%" | |
[env] |
Summary: use good/established messaging patterns like Enterprise Integration Patterns. Don't make up your own. Don't expose transport implementation details to your application.
As much as possible, I prefer to hide Rabbit's implementation details from my application. In .Net we have a Broker abstraction that can communicate through a lot of different transports (rabbit just happens to be our preferred one). The broker allows us to expose a very simple API which is basically: