What is the SITREP on Apache Kafka & Flink?

I’ve worked with (** references at end of article) a number of Apache projects over the years, often pretty closely; Apache Cassandra, Apache Flink, Apache Kafka, Apache Zookeeper and numerous others. But the last few years I’ve not been immediately hands on with the technology. A few questions popped up recently, that fortunately I was able to answer based on existing knowledge, but it made me real curious about what the SITREP (Situational Report) is for the Apache Kafka and Flink Projects for TODAY, i.e. rolling into 2025! The following is a quick dive into the history and then the latest details (and drama?) with Apache Kafka, Flink, and tangentially some other projects (Zookeeper?).

Apache Projects – Context & Quick Details

If you’re unfamiliar with the Apache Projects in a general sense, I highly suggest going and checking out the Apache Project Directory and Apache Projects List. There you will find all sorts of fascinating information about the organization itself, how the projects are organized, and the trend of committees and related details. For example, I always love checking out the initial charts on retired and active that show on the directory page, as I’ve snapshotted below.

Continue reading “What is the SITREP on Apache Kafka & Flink?”

Keeping it Lean: Building the Bare Essentials for Project Management

When you’re running a project that needs to stay lean — and I mean lean like taking a cargo bike to grab groceries instead of a 2+ ton automobile that’s slower, more cumbersome, and way overkill for the job — the tools you choose and the processes you define matter as much as the work itself. It’s easy to go overboard, drowning in Gantt charts, sprint boards, and daily standups that spiral into mini-retrospectives. But what if the goal is simplicity, agility, and clarity?

Let’s break it down.

1. Define Your Central Hub

The first thing you need is a single source of truth. This doesn’t mean a bloated Jira instance with workflows for every imaginable scenario. For a lean project, a simple Kanban-style board can do wonders. Tools like Trello or GitHub Projects (especially if you’re already using GitHub for version control) offer clean, intuitive interfaces that keep everything in one place.

Continue reading “Keeping it Lean: Building the Bare Essentials for Project Management”

Precision in Words, Precision in Code: The Power of Writing in Modern Development

I’ve always found it advantageous to enjoy writing—yes, even documentation writing. It’s one of those foundational skills that doesn’t just make you a better developer; it makes you a better communicator, collaborator, and problem solver. In my experience, being able to articulate ideas, requirements, or solutions in written form isn’t just a nice-to-have, it’s a superpower.

Fast forward to today, and the value of this skill has grown exponentially. Why? Because the world of software development is no longer confined to our IDEs or command lines. With the advent of tools like Claude, ChatGPT, Copilot, TabNine, and Replit Ghostwriter, we’ve entered an era where your ability to write clearly and concisely isn’t just a productivity hack—it’s a core part of how we develop software.

Writing as the Bridge Between Ideas and Implementation

Every time you use ChatGPT to brainstorm API designs, or lean on Copilot to generate boilerplate code, you’re engaging in a collaborative act that requires clear articulation of your goals. Tools like these don’t “read your mind” (at least, not yet, and seem prudent they don’t!). They depend on your ability to communicate requirements effectively—whether that’s describing a function’s purpose, outlining a system’s architecture, or debugging a thorny issue.

Let’s break it down:

  • Problem Definition: Writing forces you to clarify what you’re solving. “Write me a REST API that does X” only works when X is well-defined. If you’re vague, the AI’s output will be vague too.
  • Code Refinement: With tools like Copilot, you can guide its suggestions by writing meaningful comments or even inline documentation. The better you describe your intention, the more useful its suggestions.
  • Collaboration: When sharing prompts, workflows, or generated code with teammates, clear writing makes the difference between helpful and confusing.

This isn’t just about documentation anymore; it’s about precision and intent.

Continue reading “Precision in Words, Precision in Code: The Power of Writing in Modern Development”

A Successful Deploy to Vercel + Adding More Auth & Login Features to The Web Interface (Plus an Error!)

In the last few posts I knocked out a slew of initial work. Much of it was just to get things up and running and make sure the database was live, the site was live, and that there was a good connection between the two. I did this by building the first basic login page with a dashboard that just shows that the user is logged in, along with a few pages to display general static content. That can be found in:

  1. Building “Adron’s Core Platform”: Starting a React App on Vercel
  2. Getting a Vercel PostgreSQL Database and Basic Authentication Operational
  3. The Confederacy of Errors Starting With Next Auth; Error, Error, npm ERR!

The tasks I’ll accomplish in the following post:

  1. I want a horizontal menu across the top that will link to the dashboard, login, and about page.
  2. I want an account creation page.
  3. I want to make sure that I set things up for the post-login action to be a redirect to the dashboard page.

Adding a Horizontal Menu

For this menu I’m going to add a div with links, assign it as a flex space (css), and add the pertinent links. The changed ./src/app/components/Navigation.tsx with changes looks like this now.

Continue reading “A Successful Deploy to Vercel + Adding More Auth & Login Features to The Web Interface (Plus an Error!)”

The Confederacy of Errors Starting With Next Auth; Error, Error, npm ERR!

In the interim while I was getting to the next stage of this app, I ran into (what was I doing? 🤷🏼‍♂️) this error.

npm ERR! code ERESOLVE
npm ERR! ERESOLVE could not resolve
npm ERR!
npm ERR! While resolving: next-auth@4.24.10
npm ERR! Found: react@19.0.0-rc-66855b96-20241106
npm ERR! node_modules/react
npm ERR!   react@"19.0.0-rc-66855b96-20241106" from the root project
npm ERR!   peer react@"^18.2.0 || 19.0.0-rc-66855b96-20241106" from next@15.0.3
npm ERR!   node_modules/next
npm ERR!     next@"15.0.3" from the root project
npm ERR!     peer next@"^12.2.5 || ^13 || ^14 || ^15" from next-auth@4.24.10
npm ERR!     node_modules/next-auth
npm ERR!       next-auth@"^4.24.10" from the root project
npm ERR!   2 more (react-dom, styled-jsx)
npm ERR!
npm ERR! Could not resolve dependency:
npm ERR! peer react@"^17.0.2 || ^18" from next-auth@4.24.10
npm ERR! node_modules/next-auth
npm ERR!   next-auth@"^4.24.10" from the root project
npm ERR!
npm ERR! Conflicting peer dependency: react@18.3.1
npm ERR! node_modules/react
npm ERR!   peer react@"^17.0.2 || ^18" from next-auth@4.24.10
npm ERR!   node_modules/next-auth
npm ERR!     next-auth@"^4.24.10" from the root project
npm ERR!
npm ERR! Fix the upstream dependency conflict, or retry
npm ERR! this command with --force or --legacy-peer-deps
npm ERR! to accept an incorrect (and potentially broken) dependency resolution.

As with these dependency issue errors I was getting, which seems to be somewhat common with React these days (or maybe just most of web development!), I went about fixing it with the following steps.

First I removed the existing next-auth installation.

npm uninstall next-auth

Next I installed the beta version of next auth that supports Next.js 15 and React 19 (yes, I RTFMed (i.e. Read The Fucking Manual) a bit and read some other things to finally get to that conclusion).

Continue reading “The Confederacy of Errors Starting With Next Auth; Error, Error, npm ERR!”