https://github.com/fermyon/enterprise-architectures-and-patterns
Collection of Enterprise Architectures & Patterns built with Spin and WebAssembly
https://github.com/fermyon/enterprise-architectures-and-patterns
architectures fermyon-spin patterns spin webassembly
Last synced: about 1 year ago
JSON representation
Collection of Enterprise Architectures & Patterns built with Spin and WebAssembly
- Host: GitHub
- URL: https://github.com/fermyon/enterprise-architectures-and-patterns
- Owner: fermyon
- Created: 2024-02-23T13:14:39.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-04-10T09:55:09.000Z (about 2 years ago)
- Last Synced: 2024-04-14T04:43:50.939Z (about 2 years ago)
- Topics: architectures, fermyon-spin, patterns, spin, webassembly
- Language: Rust
- Homepage:
- Size: 271 KB
- Stars: 4
- Watchers: 5
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Enterprise Architectures & Patterns
[](https://github.com/fermyon/enterprise-architectures-and-patterns/actions/workflows/ci.yaml)
This repository contains a collection of enterprise architectures and patterns, to illustrate the potential of [Spin](https://github.com/fermyon/spin) and WebAssembly (Wasm) for building real-world applications.
Each folder contains a self-contained example, including a high-level explanation of the pattern/architecture and instructions on how to build and run the particular Spin App(s).
## Getting Started with Spin
If you haven't used Spin before, we highly recommend exploring the [Fermyon Developer Home](https://developer.fermyon.com) to get started. There you'll find everything from installing Spin on your local machine, over language-specific guides, to advanced techniques when building serverless Wasm applications.
## Architectures & Patterns in this Repository
### CronJobs in Kubernetes
- [HTTP APIs and CronJob](./api-with-cronjob)
- [Distributed ToDo-App](./distributed-todo-app/)
### CRUD APIs
- [Go CRUD API with persistence in SQLite](./http-crud-go-sqlite/)
- [JavaScript CRUD API with persistence in PostgreSQL](./http-crud-js-pg/)
- [JavaScript CRUD API with persistence in SQLite](./http-crud-js-sqlite/)
- [Rust CRUD API with persistence in MySQL](./http-crud-rust-mysql/)
### Command and Query Responsibility Segregation (CQRS)
- [Command and Query Responsibility Segregation (CQRS) in Go](./cqrs-go/)
- [Command and Query Responsibility Segregation (CQRS) in Rust](./cqrs-rust/)
- [Command and Query Responsibility Segregation (CQRS) using Spin Service Chaining in Rust and Go](./cqrs-servicechaining/)
### Patterns for building HTTP APIs
- [Content Negotiation](./content-negotiation-rust/)
- [Cross-Origin Resource Sharing (CORS)](./cors-rust/)
- [Long Running Jobs over HTTP](./long-running-jobs-over-http/)
- [Transparent Caching](./caching-rust/)
- [Image Transformation](./image-transformation/)
### Application Variables (aka Configuration Data)
- [Using the Azure Key Vault Application Variable Provider](./application-variable-providers/azure-key-vault-provider/)
- [Using the Vault Application Variable Provider](./application-variable-providers/vault-provider/)
### Webhooks
- [Signed Webhooks using WebAssembly Component Model](./signed-webhooks/)
### Distributed Application Patterns
- [Polyglot Aggregate Pattern implementation](./aggregate-pattern/)
- [Polyglot Publish-Subscribe](./pub-sub-polyglot/)
### Testing
- [How to load test Spin Apps with Grafana k6](./load-testing-spin-with-k6/)
- [OpenTelemetry Integration and automatic instrumentation](./distributed-tracing/)
## Are you looking for a particular pattern or architecture
We do our best to keep the list of enterprise architectures and patterns continuously growing. If you're missing a particular architecture or pattern, [create an issue and let us know](https://github.com/fermyon/enterprise-architectures-and-patterns/issues).