Skip to content

Instantly share code, notes, and snippets.

@gregoryyoung
Created October 9, 2023 19:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save gregoryyoung/0e51247f7d2859a6ad94ded5f12588fc to your computer and use it in GitHub Desktop.
Save gregoryyoung/0e51247f7d2859a6ad94ded5f12588fc to your computer and use it in GitHub Desktop.
{
"Introduction" : {
"Introduction" : "Introduction.md"
},
"blank_page": {
"Introduction": "blank_page.md"
},
"Messages": {
"Command": {
"shortDescription": "A Command is a message stating to do something",
"longDescription": "patterns/command.md",
"image": "patterns/command.png"
},
"Event": {
"shortDescription": "An Event represents a fact which has occurred.",
"longDescription": "patterns/event.md",
"image": "patterns/event.png"
},
"Query": {
"shortDescription": "A query is a question to the system that will return data.",
"longDescription": "patterns/query.md",
"image": "patterns/query.md"
},
"EventStream": {
"shortDescription": "An Event Stream is a streaming series of Events",
"longDescription": "patterns/eventstream.md"
}
},
"CQRS": {
"Introduction": "cqrs.md",
"CQRS": {
"shortDescription": "CQRS is the separation of reads and writes at a service level",
"longDescription": "patterns/cqrs.md",
"image": "patterns/cqrs.png"
}
},
"Event Logs": {
"Introduction": "eventlog_intro.md",
"Appending Event Log": {
"shortDescription": "A simple appending Event Log",
"longDescription": "patterns/appendingfileeventlog.md",
"image": "patterns/appendingfileeventlog.png"
},
"Event Log": {
"shortDescription": "An EventLog is a log containing a series of events.",
"longDescription": "patterns/eventlog.md",
"image": "patterns/eventlog.png"
},
"Segmented Event Log": {
"shortDescription": "A Segmented EventLog is a log which is made up of segments",
"longDescription": "patterns/segmentedeventlog.md",
"image": "patterns/segmentedeventlog.png"
},
"Distributed Event Log": {
"shortDescription": "A Distributed EventLog is a log which is distributed amongst many physical machines.",
"longDescription": "patterns/distributedeventlog.md",
"image": "patterns/distributedeventlog.png"
}
},
"Checkpoints": {
"Introduction": "checkpoint_intro.md",
"Memory Checkpoint": {
"shortDescription": "A Memory Checkpoint is an implementation of a Checkpoint stored in a database.",
"longDescription": "patterns/memorycheckpoint.md",
"image": "patterns/memorycheckpoint.png"
},
"File Checkpoint": {
"shortDescription": "A File Checkpoint is an implementation of a Checkpoint in a file.",
"longDescription": "patterns/filecheckpoint.md",
"image": "patterns/filecheckpoint.png"
},
"Database Checkpoint": {
"shortDescription": "A Database Checkpoint is an implementation of a Checkpoint stored in a database.",
"longDescription": "patterns/dbcheckpoint.md",
"image": "patterns/dbcheckpoint.png"
},
"Stream Checkpoint": {
"shortDescription": "A Checkpoint Stream is an implementation of a Checkpoint stored in a stream.",
"longDescription": "patterns/checkpointstream.md",
"image": "patterns/checkpointstream.png"
},
"Shared Checkpoint": {
"shortDescription": "A Shared Checkpoint is a Checkpoint which is shared between multiple consumers.",
"longDescription": "patterns/sharedcheckpoint.md",
"image": "patterns/sharedcheckpoint.png"
},
"Consensus Checkpoint": {
"shortDescription": "A Consensus Checkpoint is an implementation of a Checkpoint reached between multiple subscribers.",
"longDescription": "patterns/concensuscheckpoint.md",
"image": "patterns/consensuscheckpoint.png"
}
},
"Ids": {
"Message Id": {
"shortDescription": "A Message Id is used to uniquely identify a message.",
"longDescription": "patterns/messageid.md",
"image": "patterns/messageid.png"
},
"Correlation Id": {
"shortDescription": "A Correlation Id is used to tie a group of messages together.",
"longDescription": "patterns/correlationid.md",
"image": "patterns/correlationid.png"
},
"Causation Id": {
"shortDescription": "A Causation Id shows the causative relationship between a group of messages.",
"longDescription": "patterns/causationid.md",
"image": "patterns/causationid.png"
},
"Conversation Id": {
"shortDescription": "A Conversation Id can tie together multiple Correlation Ids to show a longer term workflow.",
"longDescription": "patterns/conversationid.md",
"image": "patterns/conversationid.png"
}
},
"Projections": {
"Introduction": "projection_intro.md",
"Projection": {
"shortDescription": "A projection is an umbrella term often used.",
"longDescription": "patterns/projection.md"
},
"Simple Projection": {
"shortDescription": "A simple projection.",
"longDescription": "patterns/simpleprojection.md",
"image": "projection/simpleprojection.png"
},
"File Projection": {
"shortDescription": "A projection which outputs to a file.",
"longDescription": "patterns/fileprojection.md",
"image": "projection/fileprojection.png"
},
"Inserting Projection": {
"shortDescription": "An Inserting Projection is a projection that inserts information per event.",
"longDescription": "patterns/insertingprojection.md",
"image": "projection/insertingprojection.png"
},
"Batched Projection": {
"shortDescription": "A Batched Projection is a projection that operates in batches as opposed to single operations.",
"longDescription": "patterns/batchedprojection.md",
"image": "projection/batchedprojection.png"
},
"Updating Projection": {
"shortDescription": "An Updating Projection is a projection that is maintaining current state.",
"longDescription": "patterns/updatingprojection.md",
"image": "projection/updatingprojection.png"
},
"Inserting Update Projection": {
"shortDescription": "An Inserting Update Projection is a projection that is essentially an Updating Projection but instead inserts",
"longDescription": "patterns/insertingupdateprojection.md",
"image": "projection/insertingupdateprojection.png"
},
"Report Projection": {
"shortDescription": "A Report Projection is a projection that produces the actual report as its output as opposed to a model.",
"longDescription": "patterns/reportprojection.md",
"image": "projection/reportprojection.png"
}
},
"Integration": {
"Introduction": "integration_intro.md",
"Direct Event Integration": {
"shortDescription": "Direct Event Integration is the simplest of the integration patterns",
"longDescription": "patterns/directeventintegration.md"
},
"Integration Event": {
"shortDescription": "An Integration Event is an Event which is used for integration between services",
"longDescription": "patterns/integrationevent.md"
},
"Event Aggregator": {
"shortDescription": "An Event Aggregator is a small piece of code which takes internal events and converts them to a well understand document form",
"longDescription": "patterns/eventaggregator.md"
},
"Negotiating Aggregator": {
"shortDescription": "An Negotiating Aggregator is an Event Aggregator which supports multiple formats and Content Type Negotiation.",
"longDescription": "patterns/negotiatingaggregator.md"
},
"Event Sourced Process Manager": {
"shortDescription": "An Event Sourced Process Manager is an implementation of the Process Manager pattern that is Event Sourced",
"longDescription": "patterns/eventsourceprocessmanager.md"
},
"Sagas": {
"shortDescription" : "A Saga is a messaging pattern based on routing slips.",
"longDescription": "sagas.md"
},
"Event Sourced Saga": {
"shortDescription": "An Event Sourced Saga is an implementation of the Saga pattern where the document contains a series of events",
"longDescription": "patterns/eventsourcedsaga.md"
}
},
"Testing": {
"Introduction": "testing.md"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment