From 6d06c6f7b80b7f0dda3749891bb4813c3ce934a9 Mon Sep 17 00:00:00 2001 From: Sathishkumar0404 Date: Mon, 26 Aug 2024 15:40:55 +0530 Subject: [PATCH 1/2] post toc and tag fixed --- _posts/2024-06-18-librdkafka-interceptors.md | 1 + _posts/2024-07-11-primer-on-streaming-databases.md | 7 ++++--- ...ng-Kafka-at-scale-for-mission-critical-customers.md | 2 +- ...eal-time-API-Monetization-is-the-need-of-the-day.md | 2 +- ...02-Simplifying-Infrastructure-with-IaC-and-Kafka.md | 2 +- _posts/2024-08-02-kafka-on-kubernetes.md | 10 +++++----- ...ur-legacy-architecture-to-an-event-driven-system.md | 5 +++-- .../2024-08-11-querying-state-store-in-apache-flink.md | 3 ++- 8 files changed, 18 insertions(+), 14 deletions(-) diff --git a/_posts/2024-06-18-librdkafka-interceptors.md b/_posts/2024-06-18-librdkafka-interceptors.md index cc58699542..5ffc9a7126 100644 --- a/_posts/2024-06-18-librdkafka-interceptors.md +++ b/_posts/2024-06-18-librdkafka-interceptors.md @@ -6,6 +6,7 @@ categories: [Data, Kafka, Librdkafka] image: assets/blog-images/librdkafka_interceptors/KafkaInterceptors.png featured: false teaser: Building Kafka interceptors for librdkafka clients +toc: true --- Interceptors in Apache Kafka are plugins that intercept and potentially modify data that is being produced or consumed by Kafka clients. It allows the externalization of common functionality among clients without having to modify the underlying Kafka code. These interceptors can either be producer interceptors or consumer interceptors and act on a single message at a time. Interceptors hook into various stages of a produce or consume request, allowing access to the message and metadata through custom code. diff --git a/_posts/2024-07-11-primer-on-streaming-databases.md b/_posts/2024-07-11-primer-on-streaming-databases.md index 15766cbe5d..f34f53f86c 100644 --- a/_posts/2024-07-11-primer-on-streaming-databases.md +++ b/_posts/2024-07-11-primer-on-streaming-databases.md @@ -6,6 +6,7 @@ categories: [Data, Kafka, Streaming Databases, KSQL, Materialize, RisingWave] image: assets/blog-images/streaming_databases/StreamingDatabase.png featured: false teaser: Why streaming databases are the rage and what makes them the hottest thing in the world of streaming. A deep dive into important characteristics of a few streaming DBs with a comparative lens. +toc: true --- @@ -18,7 +19,7 @@ In the modern era of digitalization, data needs to be made available for making -### Challenges with Stream Processing +## Challenges with Stream Processing For the rest of the use cases, we can rely on a stream processing system that processes data in “real-time”. For such real-time processing systems, there are constraints within the system, such as constraints on how quickly the data can be made available for processing from various other systems. It is usually the weakest link in the chain that contributes to the constraints. This makes stream processing in “real-time” a hard problem to solve. @@ -53,7 +54,7 @@ Although both a stream processing engine and a streaming database serve the same Real time analytical databases such as Apache Druid, Apache Pinot, or Clickhouse, on the other hand, are meant for querying data in real-time post ingestion. These databases handle ad-hoc and user facing analytics. Whereas a streaming database is meant to work on data before it is ingested into a RTOLAP database for querying. -# Comparing Streaming Databases +## Comparing Streaming Databases While evaluating a streaming database, asking a few questions about the features, design, and capabilities can help. @@ -93,7 +94,7 @@ When evaluating any software, the maturity and age of the software is a basic cr Finally, understanding the implementation details helps in designing and troubleshooting the stream processing better. An aspect of evaluation is understanding the data flow model, the key primitives, and user facing APIs / constructs. -# Comparison of 3 OSS streaming databases +## Comparison of 3 OSS streaming databases For this blog post, we will be providing a comparison between three open source databases - KsqlDB, RisingWave, and Materialize. We will briefly compare them across the previously mentioned factors and provide a reference for evaluation. diff --git a/_posts/2024-07-29-Tooling-and-Process-Lessons-from-running-Kafka-at-scale-for-mission-critical-customers.md b/_posts/2024-07-29-Tooling-and-Process-Lessons-from-running-Kafka-at-scale-for-mission-critical-customers.md index aeaead1a0b..6f4e719ca9 100644 --- a/_posts/2024-07-29-Tooling-and-Process-Lessons-from-running-Kafka-at-scale-for-mission-critical-customers.md +++ b/_posts/2024-07-29-Tooling-and-Process-Lessons-from-running-Kafka-at-scale-for-mission-critical-customers.md @@ -1,7 +1,7 @@ --- layout: post title: "Tooling and Process: Lessons from running Kafka at scale for mission critical customers" -categories: [Apache Kafka, Mission-Critical Applications, High Availability Systems, Cluster Management, Performance Optimization, Operational Challenges, Kafka at Scale, SRE Practices, ] +categories: [Apache Kafka, Mission-Critical Applications, High Availability Systems, Cluster Management, Performance, Operational Challenges, Kafka at Scale, SRE Practices, ] teaser: Dive into our journey of deploying Apache Kafka at scale for fintech clients, navigating challenges and implementing solutions for mission-critical success authors: Arun featured: false diff --git a/_posts/2024-07-29-Why-Real-time-API-Monetization-is-the-need-of-the-day.md b/_posts/2024-07-29-Why-Real-time-API-Monetization-is-the-need-of-the-day.md index a7ab36c38d..1b4eb5bda6 100644 --- a/_posts/2024-07-29-Why-Real-time-API-Monetization-is-the-need-of-the-day.md +++ b/_posts/2024-07-29-Why-Real-time-API-Monetization-is-the-need-of-the-day.md @@ -2,7 +2,7 @@ layout: post title: "Monetizing APIs, Data through usage-based billing" authors: ashwin -categories: [Data, SaaS, API Metering, Billing, Real-time, Cost, Product] +categories: [Data, SaaS, API Metering, Billing, Real-time, Cost] image: assets/blog-images/apinomy_blog/ApinomyBlogTitle.webp featured: true hidden: true diff --git a/_posts/2024-08-02-Simplifying-Infrastructure-with-IaC-and-Kafka.md b/_posts/2024-08-02-Simplifying-Infrastructure-with-IaC-and-Kafka.md index cb1754f22a..33a2830b98 100644 --- a/_posts/2024-08-02-Simplifying-Infrastructure-with-IaC-and-Kafka.md +++ b/_posts/2024-08-02-Simplifying-Infrastructure-with-IaC-and-Kafka.md @@ -1,7 +1,7 @@ --- layout: post title: "From Code to Cluster: Simplifying Infrastructure with IaC and Kafka" -categories: [Kafka Architecture, Infrastructure as Code (IaC), Automation,DevOps] +categories: [Kafka Architecture, Infrastructure, Automation,DevOps] teaser: Discover how Infrastructure as Code (IaC) can revolutionize your Kafka setup by simplifying management and boosting automation. Learn how to leverage IaC for scalable, error-free Kafka operations and transform your infrastructure practices for optimal efficiency. author: Shivaprakash image: assets/blog-images/oauth-oidc-blog/IAC.png diff --git a/_posts/2024-08-02-kafka-on-kubernetes.md b/_posts/2024-08-02-kafka-on-kubernetes.md index 159e8b9609..9c33895ed3 100644 --- a/_posts/2024-08-02-kafka-on-kubernetes.md +++ b/_posts/2024-08-02-kafka-on-kubernetes.md @@ -486,11 +486,11 @@ subgraph KC["Kubernetes Cluster"] | | CFK | Strimzi | KOperator | | :--- | :--- | :---: | ---: | | **Workload Type** | StatefulSet | StrimziPodSet | Pod | -| | | | | + | **CRs supported**|ClusterLink ConfluentRoleBinding Connector Connect ControlCenter KafkaRestClass KafkaRestProxy| Kafka KafkaBridge KafkaConnector KafkaUser KafkaMirrorMaker2 | KafkaCluster KafkaTopic KafkaUser CruiseControlOperation | | **Networking Models**| Loadbalancer NodePort Ingress | Loadbalancer NodePort Ingress | Loadbalancer (envoy or Istio ingress) NodePort Ingress | | **Storage** | * Supports Tiered Storage * | Generic CSI with PVs | Generic CSI with PVs | -| | | | | + ### **Security** @@ -505,7 +505,7 @@ subgraph KC["Kubernetes Cluster"] | SASL/OAUTHBEARER | No | Yes | No | | SASL/GSSAPI | No | No | No | | Kubernetes RBAC | No | No | Yes with K8S namespaces and SA | -| | | | | + ### **Authorization** @@ -514,7 +514,7 @@ subgraph KC["Kubernetes Cluster"] | :--- | :--- | :---: | ---: | | ACL | Yes | Yes | Yes with Envoy | | RBAC | Yes | No | No | -| | | | | + ### **Security** @@ -525,7 +525,7 @@ subgraph KC["Kubernetes Cluster"] | Monitoring add-ons | Control Center, Confluent Health+, JMX | JMX, Cruise Control | JMX, Cruise Control | | Disaster recovery | Replicator, ClusterLink. Also support Multi-region clusters | MirrorMaker2 | MirrorMaker2 | | Scale up/out | kubectl scale with Self Balancing | Non-broker components - K8S HPA and KEDA. Broker - Manual scaling with Strimzi Drain Cleaner | Autoscaling with Cruise Control | -| | | | | + # Summary diff --git a/_posts/2024-08-04-how-to-turn-your-legacy-architecture-to-an-event-driven-system.md b/_posts/2024-08-04-how-to-turn-your-legacy-architecture-to-an-event-driven-system.md index 3407dcf2c3..d6055152c8 100644 --- a/_posts/2024-08-04-how-to-turn-your-legacy-architecture-to-an-event-driven-system.md +++ b/_posts/2024-08-04-how-to-turn-your-legacy-architecture-to-an-event-driven-system.md @@ -2,15 +2,16 @@ layout: post title: "Integrating APIs and Event Streaming: for fun and profit" authors: avinash -categories: [Event-Driven Architecture, Kafka, Eventing, command processing, real-time, event driven workflows, saas] +categories: [Event-Driven Architecture, Kafka, Eventing, Command processing, Real-time, Event Driven Workflows, SaaS] image: assets/blog-images/eventception/EventDrivenArchitectureAbstract.jpeg featured: true hidden: true weight: -10 teaser: "How to progressively get the best out of RESTful and event-driven architectures." +toc: true --- -# How to turn your legacy architecture to an event-driven system +## How to turn your legacy architecture to an event-driven system In the world of microservices and real-time applications, event-driven architecture is widely adopted for building loosely coupled systems. As a result of this, multiple patterns have emerged, such as Event Notifications, Event Sourcing, CQRS, etc. All of these patterns depend on the system’s ability to produce events and react to events in a timely manner. But what are these events, and why are they important? diff --git a/_posts/2024-08-11-querying-state-store-in-apache-flink.md b/_posts/2024-08-11-querying-state-store-in-apache-flink.md index afac923a76..0d006dbd5e 100644 --- a/_posts/2024-08-11-querying-state-store-in-apache-flink.md +++ b/_posts/2024-08-11-querying-state-store-in-apache-flink.md @@ -2,11 +2,12 @@ layout: post title: "Querying Stream Processing Systems (Apache Flink)" authors: avinash -categories: [apache flink, data, stream processing, kafka streams] +categories: [apache flink, Data, Stream Processing, Kafka Streams] image: assets/blog-images/queryable_state_apache_flink/QueryingStateStoreInStreamProcessing.png featured: false hidden: false teaser: "How to query the state store in a stream processing system such as Apache Flink for unifying Operational and Analytical data." +toc: true --- ## Background From a308490f139ad480688875d6f74e075fd9f8c64b Mon Sep 17 00:00:00 2001 From: Sathishkumar0404 Date: Mon, 26 Aug 2024 15:42:32 +0530 Subject: [PATCH 2/2] styles for table, image, and blockquote updated --- _config.yml | 2 +- _layouts/default.html | 9 +++++---- _sass/_starsnonscss.scss | 15 ++++++++++++++- assets/css/main.scss | 13 +++++++++++++ assets/css/screen.css | 12 ++++++++++-- 5 files changed, 43 insertions(+), 8 deletions(-) diff --git a/_config.yml b/_config.yml index 25b8cff86f..22f8238024 100644 --- a/_config.yml +++ b/_config.yml @@ -138,7 +138,7 @@ jekyll-archives: category: '/category/:name/' # Pagination -paginate: 6 +paginate: 9 paginate_path: /page:num/ # Other diff --git a/_layouts/default.html b/_layouts/default.html index 5400e4daed..c06d0aab24 100644 --- a/_layouts/default.html +++ b/_layouts/default.html @@ -134,16 +134,17 @@

{{ site.name }}

+ -
+ diff --git a/_sass/_starsnonscss.scss b/_sass/_starsnonscss.scss index 348aac8027..9f46f179c5 100644 --- a/_sass/_starsnonscss.scss +++ b/_sass/_starsnonscss.scss @@ -89,4 +89,17 @@ .c-rating--small { font-size: 50%; } .c-rating--big { - font-size: 150%; } \ No newline at end of file + font-size: 150%; } + + +p:has(img) { + padding: 1rem 0; + text-align: center; /* Centers content inside

tags that contain an */ +} + +p:has(img) img { + display: inline-block; /* Ensures the image is treated as inline-block */ +} +.mermaid{ + padding: 2rem 0; +} \ No newline at end of file diff --git a/assets/css/main.scss b/assets/css/main.scss index a7e8b9b25a..66f11e9c6e 100644 --- a/assets/css/main.scss +++ b/assets/css/main.scss @@ -13,3 +13,16 @@ "syntax", "starsnonscss" ; + + +.main-content{ + table, th, td{ + border: 1px solid black; + border-collapse: collapse; + padding: 10px; +} +table{ + width: 100%; + margin-bottom: 20px; +} +} \ No newline at end of file diff --git a/assets/css/screen.css b/assets/css/screen.css index 78a028d5c0..ddc8613769 100644 --- a/assets/css/screen.css +++ b/assets/css/screen.css @@ -472,9 +472,11 @@ span.post-read-more a:hover { } blockquote { - border-left: 4px solid #00ab6b; - padding: 0 20px; + border: 2px solid #00ab6b; + padding: 20px; font-style: italic; + background-color: #c5c5c514; + border-radius: 4px; color: rgba(0, 0, 0, .5); } @@ -1074,4 +1076,10 @@ iframe { .navbar-collapse{ flex-grow: 0 !important; +} + +.more-blog{ + font-size: 14px; + padding: 20px; + font-weight: bold; } \ No newline at end of file