May 3, 2013
We recently tagged version 1.10.0 of Webmachine and, in addition to a slew of bug fixes, it includes some notable new features. Those features are the subject of today’s post; but first a bit of background on the driving force for these additions.
Webmachine has not received a great deal of attention recently because it had what Riak needed and, for the most part, Webmachine has just worked. With Riak CS we needed things from Webmachine that either were not possible or did not work in a way that suited our needs. Besides there was more pressing work to be done making Riak more awesome. With Riak CS that was not always the case. So we have been adding new features we needed and we believe these features will be of use and interest to the larger Webmachine community. Dogfooding FTW again!
We have now also created a
1.11.0 tag that includes an updated tag of
mochiweb so that Webmachine can be built and used with Erlang R16.
New features for 1.10.0
Run multiple dispatch groups within a single application
Users can now specify multiple groups of dispatch rules that listen on different IP addresses and ports within the same Erlang application. Read about how to configure this here.
Event-based logging system
The server modules that previously handled Webmachine logging have been replaced with an event-based system. Log event handlers can be added and removed dynamically and custom log modules can be easily added and run in concert with any existing log handlers. More details about the new logging system are here.
Ablity to specify a URL rewrite module
This feature is very similar to the
mod_rewrite module for Apache
httpd. A rewrite module specifies a set of rules for rewriting the URL and the rewritten URL is what is processed by the dispatch rules of Webmachine. Docs are here. The module used by Riak CS to rewrite S3 API requests can be found here.
Stream large response objects without buffering the entire object in memory
Streaming content has long been possible with Webmachine, but it was not suitable for use with large objects when not using
multipart/mixed because Webmachine buffered all of the content in memory to determine the size in order to properly set the
Content-Length header. This was important for Riak CS because it needed to stream back very large objects and the S3 API does not use multipart responses for this operation. Now streaming large content where the size can be determined in advance can be accomplished without having to pay the price of buffering everything in memory. More info on using this feature is here.
Ability to override the resource_module value in the request metadata
The impetus for this feature is more esoteric than the other features so an example is probably the best description. Take the case where the Webmachine resource modules duplicate a lot of code in implementing the required callbacks to service requests. One way to address this is to move much of that common code to a single module and use that common module as the resource in all dispatch rules. The ModOpts for each dispatch rule are used to specify a smaller set of callbacks for resource specialization so that logging data reflects the specialized resource module and not the common module. We will provide further details about the motivations this in a subsequent blog post focused on Riak CS. Documentation on how to configure this option can be found here.
April 23, 2013
During the rest of April, Basho will be speaking and sponsoring events around the United States and internationally. If you want to meet up with a Basho team member at one of these events, contact us to set up a time, or send us a note on Twitter. Below are some of the highlights:
NY Tech Day: Basho will be exhibiting at NY Tech Day (April 25) in New York, a massive science fair where entrepreneurs can exhibit their startups to thousands of consumers, investors, first adopters, job seekers, major companies, press and media.
NoSQL Matters: Basho is sponsoring NoSQL Matters (April 26-27) in Cologne, Germany. Additionally, Basho engineers, Sean Cribbs and Eric Redmond, will be speaking about Riak Technologies.
RailsConf: Basho will be attending RailsConf (April 29-May 2) in Portland. It is the largest gathering of Rails developers (and most of the time, Rubyists) in the world, drawing world-class developers and companies together to see the state of the art in Rails and web development.
We hope to see you at one of these events! For a full list of events this month and in upcoming months, visit our Events Page.
We’d sincerely appreciate it if you could take some time to complete our first quarterly Riak community survey. The goal of this survey is to help us better understand how you are using Riak. Our hope is that your insights will help us make better decisions moving forward with the future of Riak.
All contributors to the survey will be provided Basho swag, as well as a discount for RICON tickets. One lucky contributor will be pseudorandomly selected to receive a free ticket to RICON | East!
If you have any questions or concerns, please don’t hesitate to hit up firstname.lastname@example.org.
November 4, 2012
For those of you not familiar with Riak Core, it’s more-or-less the distributed systems infrastructure that makes up, well, the core of how Riak distributes data and scales. For some introductory reading (that’s not pure code), there’s an old but still valuable blog post on the Basho Blog that’s well worth your time.
Why a separate list? Because Core is a powerful library that can be (and is being) used to build applications distinct of the other OTP apps (kv, search, pipe, etc.) that make up Riak. I know of at least 10 companies that have Riak Core apps in production, and I’m sure there are many more just waiting to share their use cases with the
world (hint hint…). Plenty of Riak issues are Core-related, and these should still be handled on the Riak Mailing List. However, as Core gets more use, there are questions, comments, and concerns that will be specific to Core, so a separate forum for these makes sense. There will be some overlap, too, and Basho will take responsibility for cross-posting when necessary.
We’ve long been convinced of the power of Core, but it has received less tooling (docs, tutorials, etc.) due to lack of engineering time. This is a great first step to helping put more community power and focus behind Core.
July 6, 2012
I’m excited to announce that v0.4 of the Riak Community Release Notes are official, covering what happened in the Riak Community from approximately June 1 thru June 30. Some highlights include:
- Matt Ranney and Ryan Sokol discussed Riak in Production at Voxer.
- Sean Cribbs gave a talk on CRDT’s at Berlin Buzzwords.
- The inaugural Paris Riak Meetup was held.
- The team at Near Infinity wrote a good introduction to Riak.
The community also shipped a bunch of code during the month of June, so if you have a few minutes read what else the Riak Community accomplished. Also, we’re already rolling with the 0.5 Release Notes (which will cover July 2 up through August 1). You’re encouraged to contribute to past, present, and future release notes, so don’t hold back.
Enjoy, and thanks for being a part of Riak.
June 4, 2012
I’m thrilled to announce that the v0.3 Riak Community Release Notes are now official. (For some history on the Community Release Notes, go here.) This installment covers what happened in the community from (approximately) May 4 through June 1. Some of the many stand-out accomplishments from this release:
- The team at Kiip gave a great talk on moving from MongoDB to Riak.
- Long-time Riak and Riak Search users and contributors Cliboard officially launched.
- The first Riak London Meetup was held.
- Mathias Meyer shipped a huge update to the Riak Handbook.
- Matt Ranney and the team at Voxer released their Node.js client for Riak.
We did a lot more. Take a few minutes to read up. Also, we’re already rolling with the 0.4 Release Notes (which will cover June 2 up through July 1). You’re encouraged to contribute to past, present, and future release notes, so don’t hold back.
Enjoy, and thanks for being a part of Riak.
May 9, 2012
Today I am excited to introduce a new piece of infrastructure to the Riak Community on which we’ve been working: Riak Community Release Notes.
Much like codebases grow and evolve, so does a community and its accomplishments. Why not present and chronicle the community in the same way you would a piece of code? The Riak Community Release Notes are an attempt to do just that.
Each month, we’ll tag and release a new “version” of the Riak Community. The most recent (and first official) release is v0.2. Each release will represent the evolution of the Community as demonstrated by our collective work and activity. For example:
- There were more than 20 blog posts about Riak in April
- Some of our users raised funding and welcomed new children to their family
- We released some (but not enough) new documentation.
My hope is that this will grow into a collaborative effort to track the trajectory of Riak and our user community. It looks somewhat like the Riak Recap, but I think it’ll extend and surpass it in a lot of ways. Most importantly, it’s an experiment, and I’m looking forward to how it evolves. Pull requests, feedback, and criticisms are welcomed.
Thanks for being a part of Riak.
March 26, 2012
This is a big week for Basho.
The first three days of Erlang Factory are primarily workshops, and Daniel Reverri will be teaching a 3 day class on Building Distributed Clusters with Riak. All attendees will walk away with a clear understanding of exactly why Riak is the best distributed database you will ever run in production.>
The actual conference spans Thursday – Friday, and the talk lineup for this year’s event is exceptional. The Basho team will be well-represented. Put these talks on your calendar if you’re attending:
- Test-First Construction of Distributed Systems – Joseph Blomstedt
- Building Healthy Distributed Systems – Mark Phillips
- Building Cloud Storage Services with Riak – Andy Gross
Several members of the Riak Community are also on the schedule:
- Erlang for .NET Developers – OJ Reeves
- Rewriting GitHub Pages with Riak Core, Riak KV, and Webmachine – Jesse Newland
Basho Bash West
We’re really excited about all the success surrounding Riak in 2011 and we’re continuously building on that momentum as we move deeper into 2012. The number of Riak users and community members are growing exponentially so we decided to throw a party to celebrate. We’re calling it Basho Bash West 2012, and it’s co-sponsored by our friends at Joyent, Yammer and Voxer.
Come join us on Thursday, March 29th, at 6:30PM. We are renting out Roe, and you won’t be allowed to pay for anything. You’ll also be leaving with some limited edition Riak swag that will make you the envy of all your friends. Various members of the Basho team will be in attendance, along with hundreds of developers, executives, and technology enthusiasts from the Bay Area. Miss this at your peril.
You must RSVP to attend.
May 26, 2011
Eric has been active in the Riak community for some time now, and, in addition to the numerous patches and bug fixes he has contributed to the Riak Python client, he’s also gone out of his way to help educate new and existing users about all things Riak on the Mailing List and in #riak on Freenode.
Make sure to keep an eye on the Riak Wiki Repo for his commits.
March 4, 2011
Anyone can contribute to the Riak Wiki: it’s maintained and deployed from a public GitHub repository, so everyone is free to fork and send us a pull request to make changes. There is, however, a group of community members who are given commit access to this repo, and I’m pleased to announce that Ryan Zezeski is now part of this group.
Ryan first became involved with Riak several months ago when he selected it as the production data store for a component of the ad-serving platform he works on during the daytime hours. Since then he has become an active and visible member of our community, contributing numerous patches to Luwak and providing guidance to new and existing users on the Riak Mailing list and in the Riak IRC Channel. In short, he knows his Riak and we are thrilled to have him on board as a Community Committer.
Welcome, Ryan! We are looking forward to your contributions.