I was recently asked by some colleagues about my favourite books on programming. And not just books on coding, but on improving their understanding of successful teams.
Software engineering, distributed systems, databases, and the teams that build them
Software engineering, distributed systems, databases, and the teams that build them
Load SQLite dump files into rqlite v3.7.0
rqlite is a lightweight distributed relational database, with SQLite as its storage engine. With release v3.7.0 you can load SQLite dump files directly into rqlite. This makes restoring from a backup, or migrating an existing SQLite database to rqlite much easier.
You can download the release from GitHub.
Elasticsearch Meetup at Percolate
Last night Percolate hosted the San Francisco Elasticsearch Meetup.
I acted as host, and it was a great night, with excellent speakers and presentations.
Ekanite at the San Francisco Go Meetup
I gave a presentation on Ekanite — the syslog server with built-in search — tonight at the San Francisco Go Meetup. It was an enjoyable evening, and I had a chance to discuss why I built Ekanite, how it works, and where it might go in the future.
rqlite v3.6.0 released
rqlite is an open-source distributed relational database, with SQLite as its storage engine. v3.6.0 is out. With this release a new node can now join an existing cluster though any node of that cluster, not just through the leader node.
You can download the release from GitHub.
rqlite now supported on Microsoft Windows
rqlite is a lightweight, open-source distributed relational database, with SQLite as its storage engine. Thanks to the power of the Go tool chain, it is compatible with Microsoft Windows without any extra effort.
To ensure that it remains compatible with Windows, I have enabled CI for Windows using AppVeyor. After some help from the open-source community, it’s up and running now.
InfluxDB 1.0 released
My old colleagues at InfluxData have released InfluxDB 1.0. Congratulations to them all on this great milestone.
Being involved with the development of InfluxDB was a great experience, and I’m sure the database will go from strength to strength.
rqlite v3.5.0 released
rqlite is an open-source distributed relational database, with SQLite as its storage engine. v3.5.0 is out. This release supports important control of foreign key constraints, in the underlying SQLite database.
You can download the release from GitHub.
rqlite v3.4.1released
rqlite is an open-source distributed relational database, with SQLite as its storage engine. v3.4.1 is out. This release includes some minor fixes as well as source code improvements (linting).
You can download the release from GitHub.
Ekanite v1.1.0 released
A new version of Ekanite, the syslog server with built-in search, has been released. v1.1.0 includes an important bug fix related to TCP connection handling, as well as some other minor fixes and improvements.
You can download v1.1.0 from the GitHub releases page.
The evolution of the rqlite source code
rqlite is an open-source distributed relational database, with SQLite as its storage engine.
Check out this cool video, showing the evolution of the source code.
rqlite v3.4.0 released
rqlite is an open-source distributed relational database, with SQLite as its storage engine. v3.4.0 is out, which includes a minor change to the HTTP responses.
You can download the release from GitHub.
Be a Conviction Engineer
I’m a conviction engineer.
To me it’s the only way to be an effective engineer, software developer, and technical leader. You’ve simply got to truly believe in the value of what you do, and you’ve got to believe in doing it the right way.
rqlite v3.3.0 released
rqlite is an open-source distributed relational database, with SQLite as its storage engine. v3.3.0 has been released and includes new functionality to control the Raft consensus subsystem, along with improvements to the CLI.
You can download the release from GitHub.
rqlite v3.2.1 released
rqlite is an open-source distributed relational database, with SQLite as its storage engine. v3.2.1 has been released and includes new functionality for cluster management, along with new documentation on running clusters. v3.2.0 also includes some bug fixes.
You can download the release from GitHub.
How to organise a Go project
Some fellow developers, using Go for the first time, recently asked me how to organise a Go project and for some high-level guidance on programming using the language.
I thought the most effective way to answer this question was to build a simple Go HTTP service, that provides a key-value store. It also includes a README, outlining my most important guidelines for Go programming. You can check it out here.
rqlite v3: Globally replicating SQLite
rqlite is an open-source distributed relational database, which uses SQLite as its storage engine. rqlite is written in Go and uses Raft to achieve consensus across a set of SQLite databases. It gracefully handles leader election, and can tolerate machine failure.
With the v3 release series, rqlite can now replicate SQLite databases on a global scale, with very little effort. Let’s see it in action using the AWS EC2 cloud.
rqlite v3.0.1 released with leader redirection
rqlite is an open-source distributed relational database, with SQLite as its storage engine. v3.0.1 has been released and it is a significant upgrade relative to the 2.0 series. The 3.0 series allows more sophisticated clusters to be built and simplifies rqlite client coding requirements.
Continue reading “rqlite v3.0.1 released with leader redirection”
New Python clients for rqlite
Thanks to Zac Medico, there are new Python clients available for rqlite — a pure Python client, and a SQLAlchemy mapper.
Check them out on GitHub.
rqlite moved to new repository
To help with the growth of rqlite, it’s been moved to a new repository, under a dedicated organization. Github made this transfer very easy.
I decided on a new logo too.
rqlite v2.2.1 released with HTTPS, Basic Auth, and user permissions
rqlite is a replicated relational database built on SQLite, with distributed consensus provided by the Raft consensus protocol. It gracefully handles leader election, and can tolerate machine failure.
Written in Go, v2.2.1 is out now.
Continue reading “rqlite v2.2.1 released with HTTPS, Basic Auth, and user permissions”
rqlite at the San Francisco Go Meetup
I made a presentation on rqlite tonight at the San Francisco Go Meetup. It was an enjoyable evening, and I had a chance to discuss why I built rqlite, how it works, and where it might go in the future.
What I learned from programming databases
Programming a database is fascinating work. I’ve been deeply involved with developing open source databases for the past two years and programming a database is possibly the most instructive project one can ever complete as a software developer.
What’s really striking however, is how much my attitude towards databases has changed over the past 6 years. From a state of disinterest, I’ve come to think of these systems as a pinnacle of software engineering.
Continue reading “What I learned from programming databases”