1. 15
  1.  

  2. 1

    Are there people using Varnish within SOAs? It seems like it could offer a lot, in terms of being an internal caching layer. Does the specification language/requirement for customization make this less fruitful?

    Also, the streaming responses is very exciting.

    1. 1

      Here’s a script to help with the backwards incompatible configuration changes: https://github.com/fgsch/varnish3to4

      Note to self: never ever disrespect your open source projects' users like that. Either provide a stable public API or the tools to automate the migrations.

      1. 1

        Isn’t that what major versions are for?

        1. 1

          In my ideal world major versions are for major features, not major breakage.

          1. 3

            And stay stuck with mistakes forever? Is the only solution a fork? Majors aren’t meant to be backwards-compatible.

            1. 1

              Bug fixing and API stability are orthogonal concepts, aren’t they? Unless you mean mistakes in the API itself in which case I’ll remind you that no one really suffers from the typo in “HTTP referer”. And for more serious API design mistakes the proper punishment would be to keep maintaining the old version forever in addition to the new stuff you just added.

              1. 3

                Well, semver would disagree with you about never breaking backwards compat on API.

                Given a version number MAJOR.MINOR.PATCH, increment the:
                
                MAJOR version when you make incompatible API changes,
                MINOR version when you add functionality in a backwards-compatible manner, and
                PATCH version when you make backwards-compatible bug fixes.
                
                  1. 1

                    That was the exception and not the example. Torvalds just thought there were enough features to warrant a new release and 2.6.40 seemed to be pushing it. http://thread.gmane.org/gmane.linux.kernel/1147415

                    1. 1

                      Well, in my ideal world (which someone thought it’s “-1 incorrect” :-) ) major versions for major features is the rule, not the exception. The Linux kernel is a good example of (public) API stability and we should learn from it.