📢 Jussi Golang Rewrite Release Announcement
The Golang rewrite of Jussi (jussi-next) is now deployed and live. It was built from scratch in Golang, replacing the original Python implementation.
Source code: https://github.com/steemit/jussi/tree/next
Since this is a complete rewrite, there may be instability during the initial rollout. I will follow up on issues and fix them as quickly as possible.
Why a Rewrite Instead of an Upgrade
1. Severely Outdated Core Frameworks
The legacy jussi (jussi-legacy) was built on Python 3.6 + Sanic 0.8.3 — both critically outdated:
| Component | Legacy Version | Latest | Status |
|---|---|---|---|
| Python | 3.6.5 | 3.13 | EOL since 2021-12-23; no security patches for 4+ years |
| Sanic (Web framework) | 0.8.3 | 24.x | API completely restructured; requires Python 3.10+ |
| pytest | 3.10.0 | 8.x | Major test API changes |
| pytest-sanic | 0.1.13 | Abandoned | Must migrate to sanic-testing |
| Docker base image | phusion/baseimage:0.10.1 | Abandoned | Requires replacement |
Sanic underwent multiple major architectural overhauls from 0.8 to 24.x — the middleware system, routing, request/response objects, blueprints, and error handling are all incompatible. Since jussi's core logic (JSON-RPC reverse proxy) is deeply coupled with Sanic's request pipeline, upgrading Sanic would mean rewriting the entire business layer. Combined with the breaking changes between Python 3.6 and 3.10+, the upgrade effort would be comparable to a from-scratch rewrite — with less documentation and higher risk.
2. Missing Observability Infrastructure
Before Justin Sun's acquisition of Steemit Inc., technical management was disorganized, leaving observability systems with significant gaps. This rewrite also established new observability standards and rebuilt the monitoring stack, making it easier to quickly pinpoint faults across microservices.
3. Team Tech Stack Alignment
The team currently has limited Python experience, while Golang is a language the team is more familiar and productive with. Choosing Golang reduces maintenance costs and speeds up iteration.
4. Docker Image Size
Python-based Docker images typically exceed 3 GB, whereas Golang's statically compiled images can be kept under 500 MB — significantly reducing deployment and distribution overhead.
Known Issues
Potential missing route paths. This is also a future work direction: gradually deprecating legacy-tagged API paths, streamlining existing JSON-RPC call patterns, and phasing out call-style invocations — call-style wastes the
methodfield and adds complexity to route resolution.URN structure in Jussi configuration files still needs review and optimization; the current structure may have semantic ambiguities.
Community Notice
If the community wishes to deploy the Jussi Golang rewrite, you will need to read the source code and existing documentation to proceed. The handbook is not yet complete, and I currently don't have the bandwidth for deployment support — thank you for your understanding.
Other Project Updates
Background
An unplanned company-wide security audit in late February diverted my attention from March through May to Steemit Inc.'s AWS infrastructure upgrade and migration, putting all development on hold.
The AWS migration for the test environment is complete; production still has databases pending migration. The entire migration is expected to finish by the first week of June at the latest. With the migration winding down, development on previously stalled projects has resumed over the past two weeks.
Project Status Overview
| Project | Status | Source |
|---|---|---|
| jussi-next | Live | jussi/tree/next |
| wallet-next | Near launch | wallet/tree/next |
| condenser-next | In development | condenser/tree/refactor/nextjs-migration |
| SteemGoSDK | In progress | steemgosdk |
| Steem JS SDK | Preview | steem-js/tree/next |
wallet-next
The wallet project was also rewritten from scratch with a new framework and is approaching launch.
condenser-next
The condenser rewrite is gradually resuming its previous development pace.
Both wallet and condenser rewrites are expected to go live before the end of Q2.
SDKs
As jussi, wallet, and condenser rewrites progressively go live, SteemGoSDK and the Steem JS SDK rewrite are also being improved. The Steem JS SDK rewrite is expected to have its official release after wallet and condenser launch, ending its current preview status.
Internal Microservices
Two internal microservices — one responsible for reclaiming Steem account SP, another for collecting frontend analytics events — have also been rewritten in Golang and deployed, replacing their original Node.js architecture.
If you have any questions, feel free to leave a comment.
Upvoted! Thank you for supporting witness @jswit.