You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 25d355f
Browse filesBrowse the repository at this point in the historyBrowse files
at async requestWebmentions (/home/kevin/Repos/WebstackBuilders/CorporateWebsite/astro.webstackbuilders.com/src/components/WebMentions/server/index.ts:199:20)
261
261
at async eval (/home/kevin/Repos/WebstackBuilders/CorporateWebsite/astro.webstackbuilders.com/src/components/WebMentions/index.astro:27:18)
262
262
17:15:46 [200] /_vtbot_inspection_chamber.js 1ms
263
-
264
-
### Snippets
265
-
266
-
<spanclass="font-mono">
267
-
</span>
268
-
269
-
<Highlighter>
270
-
</Highlighter>
271
-
272
-
<Diagram
273
-
magnifyButtonPosition="top-left"
274
-
size="full"
275
-
/>
276
-
277
-
[&>span]:
278
-
[&>*:first-child]:
279
-
280
-
<List
281
-
variant="numbered-with-background-list"
282
-
classes={{
283
-
li: "[&>div]:!pt-2 mb-6",
284
-
}}
285
-
/>
286
-
287
-
<List
288
-
startNumber={2}
289
-
classes={{
290
-
wrapper: "sm:ml-6 sm:mr-12 mb-6",
291
-
}}
292
-
/>
293
-
294
-
<List
295
-
variant="colored-marker-list"
296
-
items={[
297
-
{
298
-
text: "With trusted service providers who assist in operating our website",
299
-
color: "bg-blue-600",
300
-
},
301
-
]}
302
-
/>
303
-
304
-
#### Stretching the badge out to the same size and centering text:
Copy file name to clipboardExpand all lines: src/content/case-studies/event-driven-architecture-migration/index.mdx
+5-3Lines changed: 5 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -103,7 +103,7 @@ Kinesis was AWS-native but had limitations on consumer scaling and retention. Th
103
103
104
104
Kafka (MSK) was operationally more complex but offered exactly what we needed: replay capability with configurable retention, strong ordering guarantees within partitions, consumer groups for scaling, and a mature ecosystem. The complexity was justified by the capabilities.
105
105
106
-
For schema management, I chose Confluent Schema Registry. When 30+ services exchange events, schema evolution is critical. The registry enforced compatibility—you couldn't deploy a producer that broke consumers.
106
+
For schema management, I chose [Confluent Schema Registry](https://docs.confluent.io/platform/current/schema-registry/index.html). When 30+ services exchange events, schema evolution is critical. The registry enforced compatibility—you couldn't deploy a producer that broke consumers.
107
107
108
108
### Phased Migration
109
109
@@ -223,7 +223,7 @@ The Schema Registry enforced backward compatibility—new fields must have defau
223
223
224
224
### Real-Time Analytics with ksqlDB
225
225
226
-
For the real-time dashboards, we used ksqlDB (a streaming SQL engine for Kafka) to process streams and materialize aggregations:
226
+
For the real-time dashboards, we used [ksqlDB](https://docs.confluent.io/platform/current/ksqldb/overview.html#ksqldb-quick-start) (a streaming SQL engine for Kafka) to process streams and materialize aggregations:
227
227
228
228
```sql
229
229
-- Create a stream from the impressions topic
@@ -257,7 +257,7 @@ The dashboard service queried these materialized tables via ksqlDB's REST API. L
257
257
258
258
### Change Data Capture
259
259
260
-
Some events originated from database writes rather than application code. Rather than retrofitting every service to publish events, we used Kafka Connect with Debezium (an open-source change data capture platform) for CDC:
260
+
Some events originated from database writes rather than application code. Rather than retrofitting every service to publish events, we used [Kafka Connect](https://www.redpanda.com/guides/kafka-tutorial-what-is-kafka-connect) with [Debezium](https://debezium.io/documentation/reference/stable/index.html)[^debezium] for CDC:
261
261
262
262
```json
263
263
{
@@ -354,6 +354,8 @@ After six months, the transformation was measurable:
354
354
355
355
The business impact was immediate. The real-time dashboards became a competitive differentiator—sales closed deals they'd been losing to competitors. Campaign managers could optimize in real-time instead of waiting for next-day reports.
356
356
357
+
[^debezium]: Debezium is an open-source change data capture platform that monitors database commits and emits inserts, updates, and deletes as ordered event streams for downstream consumers.
Copy file name to clipboardExpand all lines: src/content/case-studies/incident-response-modernization/index.mdx
+33-12Lines changed: 33 additions & 12 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -3,7 +3,7 @@ title: "Modernizing Incident Response for a 24/7 Platform"
3
3
description: "Transforming ad-hoc firefighting into a structured incident management process with clear escalation, runbooks, and blameless postmortems"
4
4
cover: "./cover.jpg"
5
5
coverAlt: "Chaotic firefighting scene transforming into organized command center, showing shift from reactive to proactive incident response"
6
-
client: "Online Marketplace"
6
+
client: "overstock"
7
7
duration: "4 months"
8
8
industry: "E-commerce / Marketplace"
9
9
projectType: "Incident Response"
@@ -46,11 +46,11 @@ The company couldn't afford a dedicated SRE team. Whatever we built needed to wo
46
46
47
47
### Understanding the Current State
48
48
49
-
I started with an incident archaeology exercise. I reviewed three months of Slack history, git commits, and the scattered incident notes that existed. I categorized every incident by type, severity, time to resolution, and—crucially—recurrence.
49
+
I started with an incident archaeology exercise. I reviewed three months of Slack history, git commits, and the scattered incident notes that existed. I categorized every incident by type, severity, time to resolution, and — crucially — recurrence.
50
50
51
51
The data told a story: 40% of incidents were repeats. The same 12 issue types caused 80% of pages. Mean time to resolution was 90 minutes, but variance was enormous—some incidents resolved in 5 minutes, others dragged on for 8 hours because the right person wasn't available.
52
52
53
-
I also conducted one-on-ones with every engineer. I needed to understand not just the technical problems but the cultural ones. People were hesitant at first—years of blame culture had taught them to be careful about admitting mistakes. Building trust took time.
53
+
I also conducted one-on-ones with every engineer. I needed to understand not just the technical problems but the cultural ones. People were hesitant at first — years of blame culture had taught them to be careful about admitting mistakes. Building trust took time.
54
54
55
55
### The Transformation Plan
56
56
@@ -59,7 +59,12 @@ The core insight was that incident response is a skill that can be learned and a
0 commit comments