Skip to content

Commit

Permalink
docs: Update docs
Browse files Browse the repository at this point in the history
  • Loading branch information
kevinmichaelchen committed Jan 14, 2024
1 parent fe0e0db commit 5718f86
Show file tree
Hide file tree
Showing 15 changed files with 147 additions and 100 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

<p align="center">

![./docs/diagrams/architecture.svg](./docs/diagrams/architecture.svg)
![./docs/diagrams/architecture.svg](./diagrams/architecture.svg)

</p>

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ direction: right
vars: {
icons: {
gopher: https://www.svgrepo.com/show/373635/go-gopher.svg
temporal: ./docs/diagrams/temporal.svg
temporal: ./diagrams/temporal.svg
database: https://icons.terrastruct.com/essentials%2F117-database.svg
}
}
Expand Down
File renamed without changes
File renamed without changes
Binary file removed docs-md/buf-repo.png
Binary file not shown.
34 changes: 0 additions & 34 deletions docs-md/buf.md

This file was deleted.

32 changes: 0 additions & 32 deletions docs-md/reservations.md

This file was deleted.

14 changes: 11 additions & 3 deletions docs/astro.config.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,20 @@ export default defineConfig({
lastUpdated: true,
sidebar: [
{
label: "Guides",
label: "Architecture",
items: [
// Each item here is one entry in the navigation menu.
{
label: "Example Guide",
link: "/guides/example/",
label: "Overview",
link: "/architecture/overview/",
},
{
label: "Why Temporal?",
link: "/architecture/why-temporal/",
},
{
label: "Buf",
link: "/architecture/buf/",
},
],
},
Expand Down
28 changes: 28 additions & 0 deletions docs/src/content/docs/architecture/buf.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
---
title: Buf
description: Using Buf for developing with Protocol Buffers
---

## What is Buf?

Buf provides value in two forms:

1. The [Buf CLI][cli] for code generation, breaking change detection, linting, and formatting.
1. The [Buf Schema Registry][bsr] for storing and managing Protobuf files as versioned modules, allowing you to consume and publish APIs without friction.

[bsr]: https://buf.build/docs/bsr/introduction
[cli]: https://buf.build/docs/ecosystem/cli-overview

## Buf Schema Registry

We've published our 4 modules to the BSR:

- [licenseapis]
- [orgapis]
- [profileapis]
- [temporalapis]

[licenseapis]: https://buf.build/kevinmichaelchen/licenseapis/docs/main:license.v1beta1
[orgapis]: https://buf.build/kevinmichaelchen/orgapis/docs/main:org.v1beta1
[profileapis]: https://buf.build/kevinmichaelchen/profileapis/docs/main:profile.v1beta1
[temporalapis]: https://buf.build/kevinmichaelchen/temporalapis/docs/main:temporal.v1beta1
56 changes: 56 additions & 0 deletions docs/src/content/docs/architecture/overview.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
---
title: Architectural Overview
description: A guide to the overall architecture here.
---

Given the name of the project, we have to mention [Temporal][temporal] as an ideal solution for implementing not only “distributed transactions” that span across multiple microservices, but also most asynchronous, relatively long-lived processes, especially ones that involve human interaction.

## Running things

- [pkgx][pkgx] and [Taskfile][taskfile] for optimal local DevEx (seamless, portable, invisible)

## APIs

- [Tailcall][tailcall] and [GraphQL][graphql]
- [Buf][buf] for [Protocol Buffer][protobuf] tooling
- [ConnectRPC][connect] for backing APIs

## Data

- [Atlas][atlas] for declarative database migrations
- [Postgres][postgres]

## Observability

- [OpenTelemetry][otel] (OTel)
- [Jaeger][jaeger] (soon to be replaced by [HyperDX][hyperdx])

## Frontend

- [NextJS][nextjs] React framework
- [shadcn/ui][shadcn-ui] for beautiful [Radix][radix]/[Tailwind][tailwind] components

## Misc

- [Docker][docker]
- [Golang][golang]

[atlas]: https://atlasgo.io/
[buf]: https://buf.build/
[connect]: https://connectrpc.com/
[docker]: https://www.docker.com/
[golang]: https://go.dev/
[graphql]: https://graphql.org/
[hyperdx]: https://www.hyperdx.io/
[jaeger]: https://www.jaegertracing.io/
[nextjs]: https://nextjs.org/
[otel]: https://opentelemetry.io/
[postgres]: https://www.postgresql.org/
[pkgx]: https://pkgx.sh/
[protobuf]: https://protobuf.dev/
[radix]: https://www.radix-ui.com/
[shadcn-ui]: https://ui.shadcn.com/
[tailcall]: https://tailcall.run/
[tailwind]: https://tailwindcss.com/
[taskfile]: https://taskfile.dev/
[temporal]: https://temporal.io/
Original file line number Diff line number Diff line change
@@ -1,4 +1,7 @@
# Why Temporal
---
title: Why Temporal?
description: Why you might want to adopt Temporal
---

A single request from a web or mobile client needs to be ultimately result in
the creation of several entities: an org, a user, a license, etc.
Expand Down Expand Up @@ -104,3 +107,38 @@ Executions. Workflow Executions are lightweight components. A Workflow Execution
consumes few compute resources; in fact, if a Workflow Execution is suspended,
such as when it is in a waiting state, the Workflow Execution consumes no
compute resources at all.

## Reservations

### Is it mature enough?

It's used by some [big names](https://temporal.io/use-cases):

- [Snapchat](https://eng.snap.com/build_a_reliable_system_in_a_microservices_world_at_snap/)
- [Netflix](https://www.youtube.com/watch?v=LliBP7YMGyA)
- [Doordash](https://doordash.engineering/2020/08/14/workflows-cadence-event-driven-processing/)
- [Stripe](https://www.youtube.com/watch?v=Crkcr1S-NSc)
- [Coinbase](https://temporal.io/case-studies/reliable-crypto-transactions-at-coinbase)
- [Datadog](https://www.youtube.com/watch?v=Hz7ZZzafBoE)
- [Hashicorp](https://www.youtube.com/watch?v=kDlrM6sgk2k&t=1188s)
- [Airbyte](https://temporal.io/case-studies/airbyte-case-study)
- [Box](https://temporal.io/case-studies/temporal-a-central-brain-for-box)
- [Checkr](https://temporal.io/case-studies/how-temporal-simplified-checkr-workflows/)
- [Descript](https://temporal.io/case-studies/descript-case-study)
- [Zebra Medical Vision](https://temporal.io/case-studies/zebra-medical-case-study/)

### Does it have a Cloud offering?

- Supports US East region
- SOC2 compliant
- Encryption means they don't see any of our data
- VPC peering
- Scalable (150,000 actions per second)
- Public uptime reporting
- Good SLA (99.9% uptime)
- Latency SLO of 200ms per region for p99
- Pricing
- simple, transparent, and controllable
- automatically adjusts based on volume within a namespace
- pay only for what you use, not what you might need.
- spend less on infrastructure and staff to run your applications
11 changes: 0 additions & 11 deletions docs/src/content/docs/guides/example.md

This file was deleted.

10 changes: 5 additions & 5 deletions docs/src/content/docs/index.mdx
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
---
title: Welcome to Starlight
description: Get started building your docs site with Starlight.
title: Welcome!
description: An ideal backend tech stack
template: splash
hero:
tagline: Congrats on setting up a new Starlight project!
tagline: This project started as a foray into Temporal's durable workflows, but it expanded into an overall amalgamation of what I consider valuable open-source tools and good engineering practices.
image:
file: ../../assets/houston.webp
actions:
- text: Example Guide
link: /temporal-saga-grpc/guides/example/
- text: Dive In
link: /temporal-saga-grpc/architecture/overview/
icon: right-arrow
variant: primary
- text: Source Code
Expand Down
11 changes: 0 additions & 11 deletions docs/src/content/docs/reference/example.md

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
---
title: Overview
description: An overview of API references
---

This project has 3 gRPC servers that are upstream (called by) the License
worker.

Expand Down Expand Up @@ -45,4 +50,4 @@ pkgx http POST \
id="$(pkgx gum input --placeholder "id")"

pkgx http http://localhost:9092/licenses/"$(pkgx gum input --placeholder "id")"
```
```

0 comments on commit 5718f86

Please sign in to comment.