diff --git a/src/app.css b/src/app.css
index f49645c..42342a4 100644
--- a/src/app.css
+++ b/src/app.css
@@ -1,4 +1,4 @@
-@import url('https://fonts.googleapis.com/css2?family=Fira+Sans&family=Inter:wght@700&family=Montserrat:wght@500&family=Roboto&display=swap');
+@import url('https://fonts.googleapis.com/css2?family=Fira+Sans&family=Inter:wght@600;800&family=Montserrat:wght@500&family=Roboto&family=Source+Serif+Pro&display=swap');
:root {
font-family: 'Fira Sans', Arial, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu,
@@ -183,11 +183,18 @@ p {
}
h3 {
- font-family: 'Montserrat', sans-serif;
+ font-size: 1.2rem;
+ margin-bottom: 0;
+}
+
+h4 {
+ font-size: 1.1rem;
+ margin-bottom: 0;
}
p {
line-height: 1.5;
+ font-size: 1.3rem;
}
a {
@@ -204,20 +211,35 @@ h1, h2 {
}
h2 {
- font-size: 1.2rem;
+ font-size: 1.5rem;
+ margin-bottom: 0;
}
pre {
- font-size: 16px;
- font-family: var(--font-mono);
background-color: rgba(255, 255, 255, 0.45);
border-radius: 3px;
box-shadow: 2px 2px 6px rgb(255 255 255 / 25%);
padding: 0.5em;
overflow-x: auto;
- color: var(--text-color);
}
+code {
+ font-size: 16px;
+ font-family: var(--font-mono);
+}
+
+/*
+.token.property {
+ color: #486eff;
+}
+.token.string {
+ color: #dc1daf;
+}
+.token.number {
+ color: #60250c;
+}
+ */
+
.bracket {
color: #a0adb9;
}
diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte
index 7ec6b8e..cce482e 100644
--- a/src/routes/+page.svelte
+++ b/src/routes/+page.svelte
@@ -97,12 +97,12 @@ JSON.parse(`{
Search your message history
-
{oneShotText}
+
{oneShotText}
Or monitor in real time
-
{JSON.stringify(fakeObjects[realTimeIndex], null, 2)}
+
{JSON.stringify(fakeObjects[realTimeIndex], null, 2)}
@@ -112,9 +112,9 @@ JSON.parse(`{
Powered by Javascript
-
=> {filterTexts[filterTextIndex]}
+
=> {filterTexts[filterTextIndex]}
-
{filteredObject}
+
{filteredObject}
diff --git a/src/routes/blog/[post]/+page.svelte b/src/routes/blog/[post]/+page.svelte
index 7ca9829..8421ee9 100644
--- a/src/routes/blog/[post]/+page.svelte
+++ b/src/routes/blog/[post]/+page.svelte
@@ -2,6 +2,21 @@
export let data
+
+
+
+
{data.metadata.title}
@@ -29,24 +44,20 @@
align-items: center;
justify-content: center;
}
+ .title-with-image h1 {
+ font-size: 5rem;
+ }
.title-with-image img {
margin: 0 2em 0;
}
- /*
- .title-with-image h1 {
- flex-grow: 1;
- }
- .title-with-image img {
- flex-grow: 1;
- max-width: 100%;
- }
- */
.title-with-image img {
max-width: 80vw;
}
+
@media (min-width: 720px) {
.content {
- max-width: 50vw;
+ flex-wrap: nowrap;
+ max-width: calc(min(700px, 100%));
}
.title-with-image img {
max-width: 30vw;
diff --git a/src/routes/blog/what-is-kafka.md b/src/routes/blog/what-is-kafka.md
index 8937113..fb83095 100644
--- a/src/routes/blog/what-is-kafka.md
+++ b/src/routes/blog/what-is-kafka.md
@@ -6,8 +6,8 @@ headerImage: "/kafka-logo.png"
headerImageAlt: "Kafka's logo"
---
-Initially built by LinkedIn, Apache Kafka is a "distributed event store" and "stream processing" platform.
-But what does that mean exactly?
+Initially built by LinkedIn, Apache Kafka is a distributed event store and stream processing platform. But, in more
+practical terms, what does it _do?_
## Basics of Kafka
@@ -26,7 +26,7 @@ For example, a bookstore may have an application that _produces_ a message every
"title": "The Metamorphosis",
"price": 9.99,
"buyerId": "84694fc7",
- "storeNum": "FL-231",
+ "storeNum": "FL-231"
}
```
@@ -52,12 +52,12 @@ producers and consumers can connect to the cluster, and the cluster itself can b
The cluster decides exactly which messages need to go where, and a key part of this process is its use of **Topics**.
-#### Topics
+### Topics
"Topics" are Kafka's way of dividing up messages into different categories. A simple topic for our bookstore might be
`book_purchases`, or `coffee_orders` (for the requisite café inside). So, when a book is sold, our producer would push a
-new message into the `book_purchases` topic. And of course, when someone orders a fancy latte or something hot and
-bitter, a message is instead put into the `coffee_orders` topic.
+new message into the `book_purchases` topic. And of course, when someone orders a delicious fancy latte, a message is
+instead put into the `coffee_orders` topic.
Importantly, consumers do not blindly receive every message produced in the system. Instead, they subscribe to
individual topics. Our author-notification service might subscribe just to the `book_purchases` topic, not being
@@ -66,9 +66,4 @@ very interested in messages from `coffee_orders`.
Thus, every time the Kafka cluster receives a newly-produced message with a given topic, it only forwards it along to
consumers that have intentionally subscribed.
-## TODO:
-## Distributed Event Store
-
-Essentially
-
-## Stream Processing
+TODO: Wrap it up.
\ No newline at end of file